ActiveMQ工作原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ工作原理相关的知识,希望对你有一定的参考价值。
ActiveMQ工作原理
ActiveMQ工作原理:
首先来看本地通讯的情况,应用程序A和应用程序B运行于同一系统A,它们之间可以借助消息队列技术进行彼此的通讯:应用程序A向队列1发送一条信息,而当应用程序B需要时就可以得到该信息。
其次是远程通讯的情况,如果信息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列2发送一条信息,系统A的MQ发现Q2所指向的目的队列实际上位于系统B,它将信息放到本地的一个特殊队列-传输队列(Transmission Queue)。我们建立一条从系统A到系统B的消息通道,消息通道代理将从传输队列中读取消息,并传递这条信息到系统B,然后等待确认。只有MQ接到系统B成功收到信息的确认之后,它才从传输队列中真正将该信息删除。如果通讯线路不通,或系统B不在运行,信息会留在传输队列中,直到被成功地传送到目的地。这是MQ最基本而最重要的技术--确保信息传输,并且是一次且仅一次(once-and-only-once)的传递。
MQ提供了用于应用集成的松耦合的连接方法,因为共享信息的应用不需要知道彼此物理位置(网络地址);不需要知道彼此间怎样建立通信;不需要同时处于运行状态;不需要在同样的操作系统或网络环境下运行。
参考技术A ActiveMQ只是用于实现jms的消息中间件的一种,工作原理的话确实应该参考jms本身的运行机制~ 参考技术B 问这个不如问JMS的工作原理啊!本回答被提问者采纳 参考技术C 这。。。。还真不清楚!lz 找找文字资料!你找找ibm MQactivemq连接池原理
首先来看本地通讯的情况,应用程序A和应用程序B运行于同一系统A,它们之间可以借助消息队列技术进行彼此的通讯:应用程序A向队列1发送一条信息,而当应用程序B需要时就可以得到该信息。其次是远程通讯的情况,如果信息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列2发送一条信息,系统A的MQ发现Q2所指向的目的队列实际上位于系统B,它将信息放到本地的一个特殊队列-传输队列(Transmission Queue)。我们建立一条从系统A到系统B的消息通道,消息通道代理将从传输队列中读取消息,并传递这条信息到系统B,然后等待确认。只有MQ接到系统B成功收到信息的确认之后,它才从传输队列中真正将该信息删除。如果通讯线路不通,或系统B不在运行,信息会留在传输队列中,直到被成功地传送到目的
地。这是MQ最基本而最重要的技术--确保信息传输,并且是一次且仅一次(once-and-only-once)的传递。
MQ提供了用于应用集成的松耦合的连接方法,因为共享信息的应用不需要知道彼此物理位置(网络地址);不需要知道彼此间怎样建立通信;不需要同时处于运行状态;不需要在同样的操作系统或网络环境下运行。 参考技术A ActiveMQ连接池是一种机制,它可以让你在使用ActiveMQ消息队列时,可以重复使用一个连接,而不是每次都创建一个新的连接。这样可以提高性能,提高效率,减少开销。
ActiveMQ连接池本质上是一种资源池,它可以把多个ActiveMQ连接放在一个池子里,每次需要使用ActiveMQ连接时,就从池子里取出一个连接,使用完毕后再放回池子。这样就可以避免每次都要重新创建连接,提升性能。
以上是关于ActiveMQ工作原理的主要内容,如果未能解决你的问题,请参考以下文章
架构设计:系统间通信(23)——提高ActiveMQ工作性能(中)