生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费
自它订阅之后发布的消息。JMS 规范允许客户创建持久订阅,这在一定程
度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激
活状态时发送的消息。
在点对点消息传递域中,目的地被成为队列(queue);在发布/订阅消息传递
域中,目的地被成为主题(topic)。
1.1.5 消息生产者
消息生产者是由会话创建的一个对象,用于把消息发送到一个目的地。
1.1.6 消息消费者
消息消费者是由会话创建的一个对象,它用于接收发送到目的地的消息。消
息的消费可以采用以下两种方法之一:
同步消费。通过调用 消费者的 receive 方法从目的地中显式提取消息。
receive 方法可以一直阻塞到消息到达。
异步消费。客户可以为消费者注册一个消息监听器,以定义在消息到达时
所采取的动作。
1.1.7 消息
JMS 消息由以下三部分组成:
消息头。每个消息头字段都有相应的 getter 和 setter 方法。
消息属性。如果需要除消息头字段以外的值,那么可以使用消息属性。
消息体。JMS 定义的消息类型有 TextMessage、MapMessage、BytesMessage、
StreamMessage 和 ObjectMessage。
1.2 JMS 的可靠性机制
1.2.1 确认
JMS 消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通
常包含三个阶段:客户接收消息、客户处理消息和消息被确认。
在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务性会
话中,消息何时被确认取决于创建会话时的应答模式(acknowledgement mode)。
该参数有以下三个可选值:
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
评论