2022年activeMQ,JMS学习资料 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年activeMQ,JMS学习资料 .pdf》由会员分享,可在线阅读,更多相关《2022年activeMQ,JMS学习资料 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 JMS JMS 源于企业应用对于消息中间件的需求,使应用程序可以通过消息进行异步处理而互不影响。 Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得 Java程序能够和其他消息组件进行通信。1.1 JMS的基本构件1.1.1 连接工厂连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory。1.1.2 连接JMS Connection 封装了客户与 JMS 提供者之间的一个虚拟的连接。1.1.3 会话JMS Session是生产和消费消息的一个单线程上下文。会话用于创建消息生产者(producer
2、)、消息消费者( consumer)和消息( message )等。会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。1.1.4 目的地目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。JMS1.0.2规范中定义了两种消息传递域:点对点( PTP )消息传递域和发布/订阅消息传递域。点对点消息传递域的特点如下:每个消息只能有一个消费者。消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
3、 - - - 第 1 页,共 27 页 - - - - - - - - - 息的时候是否处于运行状态,它都可以提取消息。发布/ 订阅消息传递域的特点如下:每个消息可以有多个消费者。生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费自它订阅之后发布的消息。JMS 规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激活状态时发送的消息。在点对点消息传递域中,目的地被成为队列(queue) ; 在发布 / 订阅消息传递域中, 目的地被成为主题(topic ) 。1.1.5 消息生产者消息生产者是由会话创建的一个对象,用于把消息发送到一个目
4、的地。1.1.6 消息消费者消息消费者是由会话创建的一个对象,它用于接收发送到目的地的消息。消息的消费可以采用以下两种方法之一:同步消费。通过调用消费者的receive 方法从目的地中显式提取消息。receive方法可以一直阻塞到消息到达。异步消费。客户可以为消费者注册一个消息监听器,以定义在消息到达时所采取的动作。1.1.7 消息JMS 消息由以下三部分组成:消息头。每个消息头字段都有相应的getter 和setter 方法。消息属性。如果需要除消息头字段以外的值,那么可以使用消息属性。消息体。 JMS 定义的消息类型有 TextMessage、MapMessage 、BytesMessag
5、e、StreamMessage 和ObjectMessage。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - 1.2 JMS的可靠性机制1.2.1 消息确认JMS 消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务性会话中,消息何时被确认取决于创建会话时的应答模式(acknowledgement
6、mode)。该参数有以下三个可选值:Session.AUTO_ACKNOWLEDGE。当客户成功的从 receive 方法返回的时候,或者从MessageListener.onMessage 方法成功返回的时候, 会话自动确认客户收到的消息。Session.CLIENT_ACKNOWLEDGE。客户通过消息的 acknowledge 方法确认消息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被消费的消息将自动确认所有已被会话消费的消息。例如,如果一个消息消费者消费了10个消息,然后确认第 5个消息,那么所有 10个消息都被确认。Session.DUPS_ACKNOWLEDGE。该
7、选择只是会话迟钝第确认消息的提交。如果JMS provider 失败,那么可能会导致一些重复的消息。如果是重复的消息,那么JMS provider 必须把消息头的 JMSRedelivered 字段设置为 true 。1.2.2 持久性JMS 支持以下两种消息提交模式:PERSISTENT。指JMS provider 持久保存消息,以保证消息不会因为JMS provider的失败而丢失。NON_PERSISTENT。不要求 JMS provider 持久保存消息。1.2.3 优先级可以使用消息优先级来指示JMS provider 首先提交紧急的消息。 优先级分 10个级别,从0(最低)到 9(
8、最高)。如果不指定优先级,默认级别是4。需要注意的是, JMS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - provider 并不一定保证按照优先级的顺序提交消息。1.2.4 消息过期可以设置消息在一定时间后过期,默认是永不过期。1.2.5 本地事务在一个 JMS 客户端,可以使用本地事务来组合消息的发送和接收。JMS Session接口提供了 commit和rollback方法。事务提交意味着生产的所有消息被发送,消费的
9、所有消息被确认;事务回滚意味着生产的所有消息被销毁,消费的所有消息被恢复并重新提交,除非它们已经过期。事务性的会话总是牵涉到事务处理中,commit或rollback方法一旦被调用,一个事务就结束了,而另一个事务被开始。关闭事务性会话将回滚其中的事务。 需要注意的是, 如果使用请求 /回复机制,即发送一个消息,同时希望在同一个事务中等待接收该消息的回复,那么程序将被挂起,因为知道事务提交,发送操作才会真正执行。需要注意的还有一个,消息的生产和消费不能包含在同一个事务中。2 ActiveMQ ActiveMQ 是 apache 旗下开源消息中间件,是目前最流行的开源的消息中间件。ActiveMQ
10、 功能特点:支持跨语言的客户端,如:Java,C和 C + +,C,Ruby,Perl ,Python 和 PHP 。在 JMS客户端和消息代理都全面支持企业集成模式。支持许多高级功能,如:信息组,虚拟目的地,通配符和复合目的地。完全支持 JMS 1.1 和 J2EE1.4 。支持 Spring , 以便 ActiveMQ可以很容易地嵌入到Spring 应用程序和使用 Spring的 XML配置机制。通过了常见 J2EE服务器 (如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试。支持可插拔传输协议,如:in-VM,TCP, SSL, NIO, UDP, mu
11、lticast, JGroups and JXTA 传输。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 支持通过 JDBC和 journal提供高速的消息持久化。设计基于高性能集群,客户端服务器,对等通信。Ajax 支持网络流媒体,支持使用纯DHTML 的 Web浏览器,允许Web浏览器成为消息传递结构的一部分。支持 CXF和 Axis , 以便 ActiveMQ 可以很容易地进入这些Web服务并提供可靠的消息传递。可作为一
12、个在内存中的JMS提供者,是 JMS的单元测试的理想选择。2.1 安装 ActiveMQ 可以从官方网站(http:/activemq.apache.org/)下载最新版的ActiveMQ。(最新版的为: 5.4.2 )2.2 启动 ActiveMQ 在下载最新的ActiveMQ 将其解压到相应的目录就可以了。需要启动ActiveMQ 只要找到 $activemq.home/bin目录,双击运行activemq.bat就可以了 (windows 版本 ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
13、 - - - - 第 5 页,共 27 页 - - - - - - - - - 启动后的界面如上图。 (ActiveMQ5.3.0版本启动后的截图,不同版本会有所不同)Listening for connections at: tcp:/10.10.40.174:61616(这里的 IP 显示的是机器名称)tcp:/10.10.40.174:61616表示监听的端口地址,也就是编写程序时,获取连接进用到的URL 。ActiveMQ Console at http:/10.10.40.174:8161/admin http:/10.10.40.174:8161/admin这个是新版本的activ
14、eMQ 提供的管理工具访问地址,可以查看队列详情,生产者,消费者等信息。2.3 配置 ActiveMQ 2.3.1 基本配置说明ActiveMQ 默认使用的是XML格式配置, 配置文件在 $activemq.home/conf目录下, 文件名为 activemq.xml 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - file:$activemq.base/conf/credentials.properties !- The
15、element is used to configure the ActiveMQ broker. - producerFlowControl=true memoryLimit=1mb producerFlowControl=true memoryLimit=1mb !- Use VM cursor for better latency 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - For more information,
16、 see: http:/activemq.apache.org/message-cursors.html - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - !- The systemUsage controls the maximum amount of space the broker will use before slowing down producers. For more information, see: ht
17、tp:/activemq.apache.org/producer-flow-control.html 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 27 页 - - - - - - - - - 2.3.1.1Kahadb 配置说明配置示例: Kah
18、aDB的各个可配置属性:属性默认值描述directoryactivemq-data保存 message store数据文件的目录indexWriteBatchSize1000批量更新索引的阀值,当要更新的索引到达这个索引时,批量更新到 metadata store 中indexCacheSize10000指定 metadata cache 的大小enableIndexWriteAsyncfalse写入索引文件到metadata store中的方式是否采用异步写入journalMaxFileLength32mb消息持久数据文件的大小enableJournalDiskSyncstrue如果为 tr
19、ue ,保证使用同步写入的方式持久化消息到journal 文件中cleanupInterval30000清除(清除或归档)不再使用的journal 文件的时间周期 (毫秒)。checkpointInterval5000写入索引信息到metadata store中的时间周期(毫秒)ignoreMissingJournalfilesfalse是否忽略丢失的journal 文件。如果为 false, 当丢失了 journal 文件时, broker 启动时会抛异常并关闭checkForCorruptJournalFilesfalse如果为 true , broker 在启动的时候会检测 journa
20、l 文件是否损坏,若损坏便尝试恢复它。checksumJournalFilesfalse如果为 true 。KahaDB 为 journal文件生产一个checksum,以便能够检测 journal 文件是否损坏。archiveDataLogsfalse如果为true,当达到cleanupInterval周期时,会归档journal 文件而不是删除directoryArchivenull指定归档journal文件存放的路径databaseLockedWaitDelay10000在使用主从数据库备份时,等待获取 DB 上的 lock 的延迟时间。maxAsyncJobs10000等待写入jour
21、nal文件的任务队列的最大数量。应该大于或等于最大并发 producer 的数量。 配合名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - - - - 并行存储转发属性使用。concurrentStoreAndDispatchTransactionsfalse如果为 true ,转发消息的时候同时提交事务concurrentStoreAndDispatchTopicsfalse如果为 true , 转发 Topic 消息的时候同时存储消息的
22、message store中。concurrentStoreAndDispatchQueuestrue如果为 true ,转发 Queue 消息的时候同时存储消息到message store 中。2.3.2 安全性配置说明(以 5.3.0 的版本为例,各个版本配置会有所不同,需查阅相应资料)访问 activeMQ 权限配置是在 $activemq.home/conf目录下的 activemq.xml中配置的, 默认是没有进行配置,任何用户都是可以访问activeMQ 。如果需要对访问权限进行控制可以进行相应配置,可以指定到相应队列的访问权限。1.配置 activemq.xml 配置权限需要在,
23、activemq.xml的元素中加入以下部分。 /queue= 对应的是所有队列/ read= ” admins”表示 admins 组的所有用户都可以消费前面queue 属性指定的队列的消息/ write=admins 表示 admins 组的所有用户都可以向前面queue 属性指定的队列发送消息/ admin=admins 表示 admins 组的所有用户可以在前面queue 属性指定的队列不存在的情况创建队列 read=admins write=admins admin=admins / / queue=TEST.表示队列名称所有以” TEST. ” (包含“ .”)开头的队列 ,(这里
24、建议队列名称以“.”作分隔符 ) read=users write=users admin=users / read=users write=users admin=users / 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 27 页 - - - - - - - - - / write=guests,users admin=guests,users 可以同时指定多个组 read=guests write=guests,users admin=guests,users
25、 / / 主题相关配置,与队列配置类似 read=admins write=admins admin=admins / read=users write=users admin=users / read=guests write=guests,users admin=guests,users / read=guests,users write=guests,users admin=guests,users/ 2.用户配置在$activemq.home/conf目录下增加login.config、groups.properties 、users.properties 三个文件。login.con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年activeMQ JMS学习资料 2022 activeMQ JMS 学习 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内