内容简介
第1章 消息传送机制基础
1.1消息传送机制的优点
1.1.1异构集成
1.1.2缓解系统瓶颈
1.1.3提高可伸缩性
1.1.4提高最终用户生产率
1.1.5体系结构灵活性和敏捷性
1.2企业消息传送
1.2.1集中式体系结构
1.2.2分散式体系结构
1.2.3混合体系结构
1.2.4以集中式体系结构作为模型
1.3消息传送模型
1.3.1点对点模型
1.3.2发布/订阅模型
1.4JMS API
1.4.1点对点API
1.4.2发布/订阅API
1.5实际场景
1.5.1面向服务体系结构
1.5.2事件驱动体系结构
1.5.3异构平台集成
1.5.4企业应用集成
1.5.5企业到企业
1.5.6地理分散
1.5.7信息广播
1.5.8构建动态系统
1.6RPC和异步消息传送
1.6.1紧密耦合的RPC
1.6.2企业消息传送
第2章 编写一个简单的示例程序
2.1聊天应用程序
2.1.1从Chat示例开始
2.1.2分析源代码
2.1.3会话和线程
第3章 深入剖析一条JMS消息
3.1消息头
3.1.1自动分配的消息头
3.1.2开发者分配的消息头
3.2消息属性
3.2.1应用程序特定的属性
3.2.2JMS定义的属性
3.2.3提供者特定的属性
3.3消息类型
3.3.1Message
3.3.2TextMessage
3.3.3ObjectMessage
3.3.4BytesMessage
3.3.5StreamMessage
3.3.6MapMessage
3.3.7只读消息
3.3.8客户端确认的消息
3.3.9消息的互操作性和可移植性
第4章 点对点消息传送模型
4.1点对点模型概览
4.1.1何时使用点对点消息传送模型
4.2QBorrower和QLender应用程序
4.2.1配置并运行应用程序
4.2.2QBorrower类
4.2.3QLender类
4.3消息关联
4.4动态队列对受管队列
4.5使用多个接收者实现负载均衡
4.6分析一个队列
第5章 发布/订阅消息传送模型
5.1发布/订阅模型概览
5.1.1何时使用发布/订阅消息传送模型
5.2TBorrower和TLender应用程序
5.2.1配置并运行应用程序
5.2.2TLender类
5.2.3TBorrower类
5.3持久订阅者和非持久订阅者
5.4动态订阅者和受管订阅者
5.5取消订阅动态持久订阅者
5.6临时主题
第6章 消息过滤
6.1消息选择器
6.1.1标识符
6.1.2常量
6.1.3比较运算符
6.1.4算术运算符
6.2声明一个消息选择器
6.3消息选择器示例
6.3.1管理HMO的索赔申请
6.3.2关于存货的特定报价通知
6.3.3优先级处理
6.3.4证券交易订单审计
6.4未传送语义
6.5设计注意事项
第7章 保证消息传送和事务
7.1保证消息传送
7.1.1消息自主性
7.1.2保存并转发消息传送
7.1.3消息确认和故障情况
7.2消息确认
7.2.1AUTO_ACKNOWLEDGE
7.2.2DUPS_OK_ACKNOWLEDGE
7.2.3CLIENT_ACKNOWLEDGE
7.3消息组和确认
7.3.1在应用程序中处理消息的重新传送
7.3.2消息组示例
7.3.3消息编组和多个接收者
7.4事务性消息
7.4.1创建并使用一个JMS事务
7.4.2事务性会话示例
7.4.3分布式事务
7.5丢失连接
7.5.1ExceptionListener示例
7.6停用消息队列
第8章 Java EE和消息驱动bean
8.1Java EE概览
8.1.1企业级JavaBean
8.2企业级JavaBean 3.0(EJB3)概览
8.2.1简化bean开发
8.2.2依赖注入
8.2.3简化回调方法
8.2.4通过编程方式默认
8.2.5拦截器
8.2.6Java持久性API
8.3Java EE中的JMS资源
8.3.1JNDI环境命名上下文(ENC)
8.4消息驱动bean
8.4.1并发处理和可伸缩性
8.4.2定义消息驱动bean
8.5消息驱动bean用例
8.5.1消息门面
8.5.2转换和路由选择
第9章 Spring和JMS
9.1Spring消息传送体系结构
9.2JmsTemplate概览
9.2.1send方法
9.2.2convertAndSend方法
9.2.3receive和receiveSelected方法
9.2.4receiveAndConvert方法
9.3连接工厂和JMS目的地
9.3.1使用JNDI
9.3.2使用本地类
9.4发送消息
9.4.1使用send方法
9.4.2使用convertAndSend方法
9.4.3使用非默认JMS目的地
9.5同步接收消息
9.6消息驱动POJO
9.6.1Spring消息侦听器容器
9.6.2MDP可选方案1:使用MessageListener接口
9.6.3MDP可选方案2:使用SessionAwareMessageListener接口
9.6.4MDP可选方案3:使用MessageListenerAdapter
9.6.5消息转换限制
9.7Spring JMS命名空间
9.7.1<jms:listener-container>消息属性
9.7.2<jms:listener>元素属性
第10章 部署注意事项
10.1性能、可伸缩性和可靠性
10.1.1确定消息吞吐量需求
10.1.2测试实际场景
10.2组播与否
10.2.1TCP/IP
10.2.2UDP
10.2.3IP组播
10.2.4基于IP组播的消息传送
10.2.5关键要点
10.3安全性
10.3.1认证
10.3.2授权
10.3.3安全通信
10.3.4防火墙和HTTP通道
10.4连接外部世界
10.5桥接到其他消息传送系统
第11章 消息传送设计注意事项
11.1内部目的地与外部目的地
11.1.1内部目的地拓扑结构
11.1.2外部目的地拓扑结构
11.2请求/应答消息传送设计
11.3消息传送设计反模式
11.3.1单用途队列
11.3.2过度使用消息优先级
11.3.3滥用消息头
附录AJava消息服务API
附录B消息头
附录C消息属性
附录D安装和配置ActiveMQ
索引