IBM MQ消息的传递过程

来,让我用接地气的、通俗的语言描述一下IBM MQ消息的传递过程。

JAVA的,每个字描述都很严谨,有问题欢迎指正,欢迎交流。

消息从A系统【10.10.10.1】 单向传递到B系统【10.10.10.4】的过程。B到A的按相反的配置,不描述了。

4个系统

A系统【10.10.10.1】:eclipse开发环境 ,主要连接参数:MQserver1【10.10.10.2】的IP、PORT、队列管理器、远程队列定义、服务器连接通道。

MQserver1【10.10.10.2】:配置有:队列管理器、远程队列定义、本地传输队列、服务器连接通道、发送方通道。

MQserver2【10.10.10.3】:配置有:队列管理器、本地队列、服务器连接通道、接收方通道。

B系统【10.10.10.4】:eclipse开发环境 ,主要连接参数:MQserver2【10.10.10.3】的IP、PORT、队列管理器、服务器连接通道、本地队列。


消息的传递过程
消息在A系统【10.10.10.1】进行组装(xml、json等等),通过IBM提供的jar包中的对象比如(MQEnvironment、MQQueueManager)将消息按照MQserver1【10.10.10.2】配置的服务器连接通道commit到     MQserver1【10.10.10.2】的队列管理器的远程队列定义配置的传输队列中,此队列管理器的远程队列定义还配置有远程队列管理器和远程队列(另一台MQserver的,也就分别是MQserver2【10.10.10.3】的队列管理器和MQserver2的队列管理器的本地队列)。
若 MQserver1【10.10.10.2】和MQserver2【10.10.10.3】能ping通并且MQ服务都是启动的,消息会从MQserver1【10.10.10.2】的传输队列传递到MQserver2【10.10.10.3】的本地队列;否则消息在 MQserver1【10.10.10.2】的传输队列中积压。
消息到达MQserver2【10.10.10.3】的本地队列后,B系统【10.10.10.4】就可以通过IBM提供的jar包中的对象比如(MQEnvironment、MQQueueManager)将消息从MQserver2【10.10.10.3】的本地队列中取出(get),取一条本地队列就少一条。完了。

消息从MQserver1【10.10.10.2】的传输队列传递到MQserver2【10.10.10.3】的本地队列需要在MQserver1【10.10.10.2】配置发送方通道,发送方通道中配置有传输队列。

消息在A系统【10.10.10.1】发送到MQserver1【10.10.10.2】和从B系统【10.10.10.4】到MQserver2【10.10.10.3】接收涉及MQ的权限问题。

PS:

以上是我自己结合项目理解总结的,可以参考https://www.cnblogs.com/lixuwu/p/6075825.html,这位写的有图。更直观一些。

你可能感兴趣的:(IBM,MQ)