- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典JMS中间件ActiveMQ介绍
JMSActiveMQ介绍;JMS介绍;JMS的作用;MOM在系统中的位置;JMS模型;JMS消息发送模式;Topic 发送模式;JMS公共接口;JMS的基本构件;JMS的基本构件;Jms消息发送时序图;Jms消息发送开发流程;Jms消息订阅者流程图;JMS消息的事务;消费者的消费方式;JMS 的通信机制;??? activeMQ支持多种通讯协议TCP/UDP等,我们选取最常用的TCP来分析activeMQ的通讯机制。首先我们来明确一个概念: 客户(Client):消息的生产者、消费者对activeMQ来说都叫作客户。 消息中转器(Message broker):它是activeMQ的核心,它接收信息并进行相关处理后分发给消息消费者。 ??? 为了能清楚的描述出activeMQ的核心通讯机制,我们选择3个部分来进行说明,它们分别是建立链接、关闭链接、心跳。 一、Client跟activeMQ的TCP通讯的初始化过程分析如下: 1. activeMQ初始化时,通过TcpTransportServer类根据配置打开TCP侦听端口,客户通过该端口发起建立链接的动作。 2. 把accept的Socket放入阻塞队列中。 3. 另外一个线程Socket handler阻塞着等待队列中是否有新的Socket,如果有则取出来。 4. 生成一个TransportConnection的实例。TransportConnection类的主要作用是处理链路的状态信息,并实现CommandVisitor接口来完成各类消息的处理。 5. TransportConnection会使用一个由多个TransportFilter实例组成的消息处理链条,负责对接收到的各类消息进行处理并发送相应的应答。这个链条的典型组成顺序:MutexTransport-WireFormatNegotiator-InactivityMonitor-TcpTransport。在这条链条中最后的一环就是TcpTransport类,它是实际和Client获取和发送数据的地方,该类的重要6. 建链完成,可以进行通讯操作。方法有run()和oneway(),一个负责读取,一个负责发送。 ; 二、关闭链接 activeMQ发现TCP链接的关闭,最关键的代码在TcpBufferedInputStream类中的 int n = in.read(buffer, position, buffer.length - position); 三、心跳 ??? 为了更好的维护TCP链路的使用,activeMQ采用了心跳机制作为判断双方链路的健康情况。activeMQ使用的是双向心跳,也就是activeMQ的Broker和Client双方都进行相互心跳,但不管是Broker或Client心跳的具体处理情况是完全一样的,都在InactivityMonitor类中实现,下面具体介绍。 ??? 心跳会产生两个线程“InactivityMonitor ReadCheck”和“InactivityMonitor WriteCheck”,它们都是Timer类型,都会隔一段固定时间被调用一次。ReadCheck线程主要调用的方法是readCheck(),当在等待时间内,有消息接收到,则该方法会返回true。WriteCheck线程主要调用的方法是writeCheck(),这有个小技巧,大家可以参考一下,那就是当WriteCheck线程休眠时,有任何数据发送成功,则该线程被唤醒后,不用通过TCP向对方真的发送心跳消息,这样可以从一定程度上减少网络传输的数据量。;ActiveMQ模型分析;ActiveMQ模型分析---静态模型;ActiveMQ模型分析;ActiveMQ模型分析-----动态模型;ActiveMQ模型分析;activeMQ消息分发指针;ActiveMQ的监控;actviemq 配置连接URI;ActiveMQ稳定性和容错性考虑;activeMQ的failOver重连机制;failOver重连机制;activeMQ安全管理;调整TCP传输设置;OpenWire参数调试;wireFormat包信息;ActiveMQ集群部署;ActiveMQ集群部署;Master/salve Server;Master/salve Server;spring 和activeMQ的结合;spring 和activeMQ的结合;ActiveMQ的消息传输机制;参考资料:
文档评论(0)