一丶JMS基本概念(1)
概念
JMS Java Message Service,Java消息服务,是Java EE中的一个技术
JMS规范
JMS 定义了Java中访问消息中间件的接口,并没有给予实现,实现JMS接口的消息中间件叫JMS Provider,例如ActiveMQ
JMS Provider
实现JMS接口和规范的的消息中间件
JMS Message
JMS消息,由以下三部分组成:
1.消息头:每个消息头字段都有相应的的getter和setter方法
2.消息属性:如果需要消除消息头字段以外的值,可以使用消息属性
3.消息体:封装具体的消息数据
JMS Producer
消息生产者,创建和发送JMS消息的客户端应用
JMS Costumer
消息消费者,接受和处理JMS消息的客户端应用
消息者可以使用以下两种消费方式之一:
1:同步消费:通过调用消费者的recive的方法从目的地中显式提取消息,recive方法可以一直阻塞到消息的送达
2:异步消费:客户可以作为消费者注册一个消息监听器,以定义消息到达时所采取的操作。
二丶JMS基本概念(2)
JMS Domains
消息传递域,JMS中规定了两种消息传递域,点对点(point-to-point,简写PTP),和发布/订阅传递域(publish/subscribe,简写成pub/sub)
1.点对点消息传递域的特点
(1)每个消息只能有一个消费者
(2)消息的生产者和消费者之间没有时间上的相关性,无论消费者在生产者发布消息的的时候是否处于运行状态,他都可以提取消息。
2.发布/订阅传递域的特点
(1)每个消息可以有多个消费者
(2)生产者和消费者之间有时间上的相关性,订阅一个主题的消费者(topic),只能消费自它订阅之后发布的消息,JMS规范允许客户创建持久订阅
这在一定程度上放宽了时间上的相关性要求,持久订阅允许消费者消费他处于未激活状态是发送的消息。
3.在点对点消息传递域中,目的地被称为队列(queue),在发布/订阅消息传递域中,目的地被称为主题(topic)+
三丶JMS消息结构(1)
JMS消息由以下几部分组成
消息头,属性,消息体
1.消息头包含消息的识别信息和路由信息,有以下一些标准属性
1:JMSDestination:消息发送的目的地,主要是指queen或topic。自动分配。
2:JMSDeliveryMode:传送模式,两种 持久模式或非持久模式(持久模式:JMS提供者出现故障,再次连接会再次传递,非持久模式相反)
四丶JMS消息结构(2)
JMS API 定义了5种消息格式,也叫消息类型
TextMessage,MapMessage,BytesMessage,StreamMessage和ObjectMessage
JMS 消息属性
(1)应用程序设置和添加的属性:
比如 message.setStringProperty(“‘username’,username)
(2)JMS定义的属性
使用JMSX作为属性名的前缀,
connection.getMetaData().getJMSXPropertyNames()方法返回所有支持的JMS的属性名字。