文章参考:https://developer.ibm.com/zh/components/ibm-mq/gettingstarted/
在学习IBM MQ之前,我们首先得对消息传递有一个基础的认识。
消息传递存在在我们的生活之中,例如:人与人之间的沟通交流就是消息传递的一种。
在消息传递的过程中,往往会遇到诸多问题。例如,在消息传递的过程中无法保证消息是否正确传输给对方。
因此,大多数消息传递系统都提供了一系列所谓的“服务质量 (QoS)”选项,支持应用程序设计人员在发送和接收消息方面的各种需求。例如,MQTT 协议定义了以下三项:
QoS 0:最多一次
QoS 1:至少一次
QoS 2:有且仅有一次
消息传递样式
消息传递系统中使用两种消息传递域(或称为消息传递样式):
-
点到点消息传递 – 这种消息传递样式使用消息队列,其中消息由单个使用者来处理。消息生产者被称为发送者,消息使用者则被称为接收者。
-
发布/订阅消息传递 – 在这种消息传递样式中,会将消息副本传递给所有感兴趣的使用应用程序。 消息生产者被称为发布者,消息使用者则被称为订阅者。
保护消息安全
通常,消息安全主要会考虑以下几个因素:
- 如何对用户进行身份验证,如何授权用户使用队列和主题等资源?此外,消息传递软件是否与已经存在的身份验证系统相集成?
- 如何保护传输中的数据?例如,是否支持传输层安全性 (TLS) 以提供加密?
- 如何保护静态数据?例如,消息或其有效负载在存储时是否加密?
接下来,我们来了解一下IBM MQ的基础概念
IBM MQ 是一个强大且安全可靠的消息传递解决方案。它可以简化并加速跨多个平台的不同应用程序的集成,并且支持多种 API 和语言。它可以通过可靠且可扩展的方式进行通信和交换数据,从而使一个应用程序与另一个应用程序解耦.
它主要作为一个中间件,来实现多个客户端直接的交互
它可以将客户端发送的消息暂存到消息队列中
因此,消息传递不需要应用程序同时可用,因为可以使用队列。这种模型称为异步消息传递。
无论是一个应用程序掉线,还是它比另一个应用程序速度慢,消息队列可以处理双方的不稳定性,从而提供“减震功能”。
IBM MQ基础概念
消息、队列和通道
消息 是应用程序生产和使用的数据包。
队列 是可寻址的位置,用于传递消息和在需要使用前可靠地存储消息。
队列管理器 是托管队列的 MQ 服务器。
通道 是队列管理器相互之间以及与应用程序之间进行通信的途径。
MQ 网络
MQ 网络是相互连接的队列管理器的松散集合,所有网络协同工作以在应用程序和位置之间传递消息。
MQ 集群
MQ 集群是队列管理器的紧密耦合,可实现更高级别的扩展和可用性。
IBM MQ 消息传递模式
IBM MQ 支持以下消息传递模式:
点对点消息传递
这种消息传递模式是基于消息队列的概念以及单个使用者处理消息而构建。
在点对点模式中,消息生产者被称为发送者,消息使用者则被称为接收者。发送者将消息生成到队列,而接收者异步使用该队列中的消息。
要使用点对点模式,相互连接的应用程序需要知道它们进行交互时所使用的队列名称。
发布/订阅消息传递
在这种消息传递模式中,会将消息副本传递给所有感兴趣的使用应用程序。
消息生产者被称为发布者,消息使用者被称为订阅者。基础架构内的发布和订阅应用程序共同协商主题名称。如果使用者示意希望接收有关该主题的消息,需要对该主题创建订阅。
发布到主题的任何消息都将被传递给所有订阅,因此每个订阅者都会得到一份副本。每个主题都可能有很多发布者和订阅者,MQ 负责处理所有主题之间的消息传递。