欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MQ的消息驱动和消息触发(来自《精通WebSphereMQ》)

程序员文章站 2022-06-13 09:02:09
...

 

我们在构建一个应用系统的时候,往往会将其划分成多个模块,各个模块之间需要约定

接口规范。对于消息驱动的模块之间需要约定的是消息的报文格式、通信模式、功能定义。

报文格式也就是双方模块都能理解的消息语言,比如 XML。对于跨网络、跨平台的消息,

报文格式应该能够屏蔽双方信息编码上的差异 (比如 ASCII 编码或 EBCDIC编码),屏蔽双

方信息表达上的差异 (比如整数的高低字节,浮点数的表示,32 位/64 位的整数长短等等)。

通信模式也就是双方通话的方式,比如是双向的一问一答方式,还是单向的汇报方式,是点

对点方式,还是一对多广播方式。对于跨网络、跨平台的消息,通信模式还应该约定双方的

网络层通信协议和应用层通信协议。 功能定义也就是说模块在收到一条消息后应该做的相应

动作。有了这些约定,模块之间就可以通过消息流转将各个模块的功能发挥出来,形成对外

的业务功能。一旦要增加模块,原有的模块可以不需要改动。一旦要改变业务功能或业务流

程,可能需要改变的只是消息流转的次序和方式。 

 

  消息驱动结构的系统中几乎所有的模块都在等待消息,在消息到来后进行相应的处理,

处理结束后又回到这个点等待下一条消息。消息源可以是一个文件,也可以是系统队列、数

据库、网络连接等等,可谓五花八门。监听消息的程序通常被称为监听器 (Listener),如果

每个模块有各自不同的监听器,则在系统空闲的时候,这些模块虽然不在工作,但也一直占

用着系统资源。如果模块共同系统提供的监听器,则在监听器上可以设立触发机制 

(Trigger),可消息到达的时候来启动相应的模块进行处理,这样一来,在系统空闲的时候,

只需要开启系统监听器即可,所有的工作模块都可以休息了

相关标签: MQ