本文旨在对消息中间件的主要模块作简单介绍,消息中间件主要模块以下图:算法
队列管理器网络
负责建立和删除队列并控制队列的属性,spa
由消息路由和排队模块、消息通道代理模块和系统管理模块组成。代理
消息路由和排队模块日志
负责消息传递的方向,算法以下中间件
(1)经过消息队列接口接受消息;接口
(2)检查消息目的队列名中的队列管理器名是不是本地的。若是是,则将该消息放入对应队列名的本地应用队列中,而后转到(5)。不然,将该消息放入对应队列管理器名的传输队列中;队列
(3)消息通道代理模块负责将该消息传递给远程中间件系统的队管理器;事件
(4)远程中间件系统的队列管理器将该消息放入对应队列名的应用队列中;路由
(5)应用程序经过消息队列接口从应用队列中获取该消息。
消息通道代理(MCA)模块
负责消息的底层传递和网络通道的故障恢复。
前者使用底层网络协议(如TCP或UDP等),并采用握手方式来传送消息,即接收方的MCA收到消息后向发送方的MCA发应答消息进行确认;
后者经过对网络通道的探测来得到网络中发生的故障,并负责故障的恢复,即发送消息失败时,MCA暂时代为存储此消息。当网络链接再次创建后,MCA自动重发这条消息,无需应用程序干涉。
系统管理模块:管理和维护中间件系统,包括:
创建和删除队列通道;
生成和维护队列路由表;
查询通道的状态和处理;
处理各类异常状况;
日志全部重要事件。