MQ和JMS
Jms Summary
Jms即java消息服务(java message service),是一个JAVA平台中关于面向消息中间件(MOM)的标准规范。
Jms Function
便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发
Jms Evolution
2001年6月25日,Java消息服务发布JMS 1.0.2b
2002年3月18日,Java消息服务发布JMS1.1,统一了消息域。
Jms Mode
ØPoint-to-Point
点对点模型(队列模型):一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列
ØPublish/Subscribe
发布者/订阅者模型:支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。
Jms API
Jms1.1
Message
lStreamMessage--Java原始值的数据流
lMapMessage--一套名称-值对
lTextMessage--一个字符串对象
lObjectMessage--一个序列化的Java对象
lBytesMessage--一个未解释字节的数据流
Transport
NON_PERSISTENT
非持久化
PERSISTENT
持久化
Mq Summary
MQ :Message Queue、消息中间件
MQ Product
l开源
ActiveMQ(1.1)
JbossMQ
OpenJMS
l商业
IBM WEBSPHERE MQ(1.0.2)
BEA WEBLOGIC JMS
ORCALE AQ
MQFeature
Ø统一接口
Ø降低依赖
Ø分布式处理
Jms Spring
Package
ØOrg.springframework.jms.core
核心包,主要包含JmsTemplate模板类,以及模板类用到的接口定义
ØOrg.springframework.jms.support
辅助包
üOrg.springframework.jms.support.converter
抽象JMS对象与JAVA对象的转换
üOrg.springframework.jms.support.destination
提供JMS目的地的定位功能
ØOrg.springframework.jms.connection
连接相关的包
Class
ConnectionFactory
ØSingleConnectionFactory
ØCachingConnectionFactory
ØPooledConnectionFactory
Send Message
JmsTemplate
MessagerConverter
SessionCallback
ProducerCallback
Recevice Message
同步接收
异步接收
消息容器
lSimpleMessageListenerContainer
这个消息侦听容器是三种中最简单的。它在启动时创建固定数量的JMS session并在容器的整个生命周期中使用它们。这个类不能动态的适应运行时的要求或参与消息接收的事务处理。然而它对JMS提供者的要求也最低。它只需要简单的JMS API
lDefaultMessageListenerContainer
这个消息侦听器使用的最多。和SimpleMessageListenerContainer一样,这个子类不能动态适应运行时侯的要求。然而,它可以参与事务管理。每个收到的消息都注册到一个XA事务中(如果配置过),这样就可以利用XA事务语义的优势了。这个类在对JMS提供者的低要求和提供包括事务参于等的强大功能上取得了很好的平衡。
消息回调
MessageListener
SessionAwareMessageListener
MessageListenerAdapter
为MessageListener、SessionAwareMessageListener的实现,通过反射提供更高的扩展。