MQ的工做原理


如图所示:网络

首先来看本地通信的状况,应用程序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提供了用于应用集成的松耦合的链接方法,由于共享信息的应用不须要知道彼此物理位置(网络地址);不须要知道彼此间怎样创建通讯;不须要同时处于运行状态;不须要在一样的操做系统或网络环境下运行。队列