ActiveMQ开发与实施细则.ppt
- 文档编号:1134371
- 上传时间:2022-10-17
- 格式:PPT
- 页数:32
- 大小:781.50KB
ActiveMQ开发与实施细则.ppt
《ActiveMQ开发与实施细则.ppt》由会员分享,可在线阅读,更多相关《ActiveMQ开发与实施细则.ppt(32页珍藏版)》请在冰豆网上搜索。
ActiveMQ开发与实施简介,ActiveMQ基本概念,基本概念说明,JMS对与一个大型系统是必不可少的一个应用组件,利用JMS可主要实现三个目的:
提高可伸缩性利用JMS来缓解系统瓶颈提高系统对用户的响应能力ActiveMQ作为一种消息中间件的实现,用于保证异构应用之间的消息传递。
应用程序通过MQ接口进行互连通信,可以不必关心网络上的通信细节,从而将更多的注意力集中于应用本身。
基本概念说明:
可靠性机制,MQ中的消息只有在被确认之后,才能被认为已经成功地消费。
消息成功消费的三阶段:
客户接收消息客户处理消息消息被确认事务性会话中,一个事务被提交后,确认自动完成。
非事务性会话中,何时被确认取决于创建会话时的应答模式(acknowledgementmode)Session.AUTO_ACKNOWLEDGESession.CLIENT_ACKNOWLEDGESession.DUPS_ACKNOWLEDGE,1、消息的确认,基本概念说明:
可靠性机制,消息生产者使用PERSISTENT提交消息。
客户通过会话上的createDurableSubscriber方法来创建持久订阅。
ActiveMQ存储发布到持久订阅对应的Topic上的消息。
客户再次调用会话上的createDurableSubscriber方法激活该持久订阅后,ActiveMQ会向客户发送客户处于非激活状态时所发布的消息。
2、持久订阅,基本概念说明:
可靠性机制,在MQ客户端,可使用本地事务来组合消息的发送和接收。
Session接口提供了commit和rollback方法。
事务提交是指生产的所有消息被发送,消费的所有消息被确认;事务回滚是指生产的所有消息被销毁,消费的所有消息被恢复并重新提交,除非它们已经过期。
2、本地事务,基本概念说明:
消息,消息是MQ中最小的概念,本质上就是一段数据,它能被一个或多个应用程序所理解,是应用程序之间传递的信息载体。
消息可以大致分成两部分:
应用数据体和消息数据头。
消息数据头是对消息属性的描述,这段信息往往被队列管理器用来确定对消息的处理。
消息数据头可以由应用程序或系统的消息服务程序共同产生,它包含了消息在传送中的必要信息,如目标队列管理器的名字,目标队列的名字,以及消息的其它一些属性。
消息可以分成持久消息和非持久消息。
JMS开发简介,JMS开发简介,jms即Java消息服务(JavaMessageService)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
在JMS编程时,首先要找出ConnectionFactory,以此创建Connection,再建立Session,以后所有的操作都以Session为基础。
找出Queue或Queue(统称Destination),以此创建QueueSender或QueuePublisher(统称MessageProducer),在该对象上发送或发布消息。
也可以在Destination基础上创建QueueReceiver或QueueSubscriber(统称MessageConsumer),在该对象上接收或订阅消息。
JMS中有一系列的类:
ConnectionFactory,Connection,Session,MessageProducer,MessageConsumer,Message。
JMS开发简介,JMS即Java消息服务应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
基本API清单,JMS开发要点一,应用通信是用点对点(Point-to-Point)方式还是用发布/订阅(Pub/Sub)方式。
点对点方式是双方通信,发布/订阅方式可以完成多方通信。
同步接收消息还是异步接收消息。
同步读取即主动读取方式,异步读取则需要设定Listener,在消息到达后,自动调用Listener的onMessage()方法。
JMS操作是否需要有交易保护。
在交易保护下的JMS操作是可以提交或回滚的。
JMS开发要点二,对于MessageConsumer,消息在读取后通常需要确认(Acknowledgement),这个确认是自动产生还是程序控制生成。
程序控制的方式往往意味着更大的灵活性,但也更麻烦一些。
消息是否是持久性的。
持久性的消息会记入Log,在消息服务重启后仍然保留,就象记入数据库一样。
消息是否需要有超时设定。
缺省情况下,消息都不会超时,有超时设置的消息在超时之后自动消失。
消息是否需要优先级设定。
高优先级的消息在队列中可以排在靠前的位置。
JMS开发:
发布/订阅,在某些应用环境中,消息的发送者在发送消息的时候并不知道有多少个接收者,也不知道消息目的地在哪里。
需要设立一个中间机构,类似于邮局。
消息的发布者就好像报社或杂志社,它在发布之前需要一次性地与邮局注册需要发行的刊物代码。
消息订阅者就好像读者,需要到邮局确认需要订阅的刊物代码。
邮局只负责递送业务,一旦有新的刊物出版,就会送到所有订阅过的读者手中。
这种方式可以使得消息的订阅者只接收自己感兴趣的消息。
JMS开发:
发布/订阅,JMS类结构图,ActiveMQ架构图,消息传递示意图,消息传递说明,在传送过程中,系统处理JMS消息分为以下两类:
有效负荷消息由生成方发送给使用方的消息。
控制消息代理与客户端运行时环境之间传送的私有消息,用于确保有效负荷消息成功。
消息传递说明,消息的生成客户端运行时环境通过连接将消息从消息生成方传送到代理。
消息的处理和路由代理从连接中读取消息并将此消息放入相应的目的地中。
代理将(持久性)消息放入数据存储库中。
代理向消息生成方的客户端运行时环境确认已收到消息。
代理确定消息的路由。
代理将消息从目的地写入适当的连接,用使用方的标识符标记该消息。
消息的使用消息使用方的客户端运行时环境将消息从连接传送到消息使用方。
消息使用方的客户端运行时环境向代理确认消息已使用。
消息的生命周期结束代理处理客户端确认,并在收到所有确认后删除(持久性)消息。
代理向使用方的客户端运行时环境确认,告知客户端确认已得到处理。
ActiveMQ插件开发,ActiveMQ有一个很强大的插件体系,提供了很好的扩展能力,ActiveMQ本身使用这一套插件体系实现了很多扩展功能,包括权限管理,日志管理,事务等模块都是作为一个插件集成的,我们也可在消息路由、补偿式事务方面使用了它的插件功能,实现非常方便。
在ActiveMQ中,Broker代表一个运行的MQ节点,ActiveMQ的插件实际上是基于Broker的一个Filter链,整个设计类似于servlet的Filter结构,所有的Plugin构成一个链式结构,每个插件实际上都是一个”Interceptor”,ActiveMQ插件开发,插件的类结构图:
ActiveMQ架构图,ActiveMQ插件开发,“SystemPlugin”是指AMQ内部使用Plugin机制实现的一些系统功能,用户不能定制,“AMQPlugin”指的是ActiveMQ已经实现好了,可以在配置文件中自由选择的一些插件,例如简单的安全插件,JAAS安全插件和DLQ插件等用户插件就是指用户自己实现的amq插件,需要用户把相关jar包放入到amq的启动classpath中,并在配置文件中进行配置才能正确加载的插件。
插件结构图说明,ActiveMQ环境配置,ActiveMQ配置,producerFlowControl=falsememoryLimit=10mb,ActiveMQ配置:
持久化,KahaDB:
isafilebasedpersistencedatabase,ActiveMQ配置:
3种分发策略,1、roundRobinDispatchPolicy:
Simpledispatchpolicythatsendsamessagetoeverysubscriptionthatmatchesthemessage.2、simpleDispatchPolicy:
Simpledispatchpolicythatsendsamessagetoeverysubscriptionthatmatchesthemessage.3、strictOrderDispatchPolicy:
Dispatchpolicythatcauseseverysubscriptiontoseemessagesinthesameorder.,DispathPolicy,ActiveMQ配置:
6种恢复策略,1、fixedCountSubscriptionRecoveryPolicy:
keepafixedcountoflastmessages.2、fixedSizedSubscriptionRecoveryPolicy:
keepafixedamountofmemoryavailableinRAMformessagehistorywhichisevictedintimeorder.3、lastImageSubscriptionRecoveryPolicy:
onlykeepthelastmessage.4、noSubscriptionRecoveryPolicy:
disablerecoveryofmessages.5、queryBasedSubscriptionRecoveryPolicy:
performauserspecificquerymechanismtoloadanymessagestheymayhavemissed.6、timedSubscriptionRecoveryPolicy:
keepatimedbufferofmessagesaroundinmemoryandusethattorecovernewsubscriptions.,SubscriptionRecoveryPolicy,ActiveMQ配置:
集群,实现目标,不停机,不改变集群中任何节点的状态,可以对集群中的节点任意添加,进行压力分载。
发出一个请求,集群中的所有应用程序节点都能接收相同数量的请求。
通信中组件的接收端失效,当生效后再运行时能继续接收到上次失效前的请求。
请求中有多种不同的类型,下面的集群节点可以按照不同的类型接收,可以动态的指定集群节点中的机器完成不同的任务。
ActiveMQ配置:
集群,ActiveMQ配置:
安全验证,ActiveMQ性能测试,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ActiveMQ 开发 实施细则