- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 JMS
在介绍ActiveMQ之前,首先简要介绍一下JMS规范。
1.1 JMS的基本构件
1.1.1 连接工厂
连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的
ActiveMQConnectionFactory。
1.1.2 连接
JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接。
1.1.3 会话
JMS Session是生产和消费消息的一个单线程上下文。会话用于创建消息生
产者(producer)、消息消费者(consumer)和消息(message)等。会话提供
了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子
操作中。
1.1.4 目的地
目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。
JMS1.0.2 规范中定义了两种消息传递域:点对点(PTP)消息传递域和发布/订阅
消息传递域。
点对点消息传递域的特点如下:
• 每个消息只能有一个消费者。
• 消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发
送消息的时候是否处于运行状态,它都可以提取消息。
发布/订阅消息传递域的特点如下:
• 每个消息可以有多个消费者。
• 生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费
自它订阅之后发布的消息。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)。
该参数有以下三个可选值:
• Session.AUTO_ACKNOWLEDGE。当客户成功的从receive方法返回的时候,
或者从MessageListener.onMessage方法成功返回的时候,会话自动确认
客户收到的消息。
• Session.CLIENT_ACKNOWLEDGE。客户通过消息的acknowledge方法确认消
息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被
消费的消息将自动确认所有已被会话消费的消息。例如,如果一个消息消
费者消费了10个消息,然后确认第5个消息,那么所有10个消息都被确
认。
• Session.DUPS_ACKNOWLEDGE。该选择只是会话迟钝第确认消息的提交。如
果JMS provider失败,那么可能会导致一些重复的消息。如果是重复的
消息,那么JMS provider必须把消息头的JMSRedelivered字段设置为
true。
1.2.2 持久性
JMS 支持以下两种消息提交模式
您可能关注的文档
- A direct search method for determination英文清晰版.pdf
- A method for examining the spatial dimension of multi-criteria weight sensitivity英文清晰版.pdf
- aer.100.2.30 Some Fiscal Calculus英文清晰版.pdf
- aer.100.2.35 Fiscal Policy in a Model with Financial Frictions英文清晰版.pdf
- aer.100.2.41 Debt Consolidation and Fiscal Stabilization of Deep Recessions英文清晰版.pdf
- aer.100.2.57 Loan Syndication and Credit Cycles英文清晰版.pdf
- aer.100.2.125 Do Traditional Institutions Constrain Female Entrepreneurship英文清晰版.pdf
- aer.100.2.141 Equilibrium Fictions A Cognitive Approach to Societal Rigidity英文清晰版.pdf
- An algebraic approach to automated geospatial information fusion英文清晰版.pdf
- An improved model of heat transfer through penguin feathers and down英文清晰版.pdf
- 《GB/T 19510.209-2023光源控制装置 第2-9部分:放电灯(荧光灯除外)用电磁控制装置的特殊要求》.pdf
- GB/T 43555-2023智能服务 预测性维护 算法测评方法.pdf
- 中国国家标准 GB/T 43555-2023智能服务 预测性维护 算法测评方法.pdf
- 中国国家标准 GB/T 19510.209-2023光源控制装置 第2-9部分:放电灯(荧光灯除外)用电磁控制装置的特殊要求.pdf
- GB/T 19510.209-2023光源控制装置 第2-9部分:放电灯(荧光灯除外)用电磁控制装置的特殊要求.pdf
- 《GB/T 43555-2023智能服务 预测性维护 算法测评方法》.pdf
- GB/Z 41275.22-2023航空电子过程管理 含无铅焊料航空航天及国防电子系统 第22部分:技术指南.pdf
- GB/T 23031.4-2023工业互联网平台 应用实施指南 第4部分:网络化协同.pdf
- 《GB/T 23031.4-2023工业互联网平台 应用实施指南 第4部分:网络化协同》.pdf
- 中国国家标准 GB/T 23031.4-2023工业互联网平台 应用实施指南 第4部分:网络化协同.pdf
文档评论(0)