队列管理器和消息代理之间的区别

Posted

技术标签:

【中文标题】队列管理器和消息代理之间的区别【英文标题】:Difference between queue manager and message broker 【发布时间】:2013-11-05 17:51:43 【问题描述】:

Websphere 消息代理和队列管理器有什么区别。我猜队列管理器将消息放入队列,从队列中取出消息,将消息移动到回退队列等。那么代理的工作是什么?

它是位于发布者和队列管理器之间还是位于消费者和队列管理器之间?

【问题讨论】:

顺便说一句,它不是 Websphere MQ 代理,它是 Websphere 消息代理。 【参考方案1】:

WebSphere MQ 是一种应用程序到应用程序通信服务的解决方案,无论您的应用程序或数据位于何处。无论是在单个服务器上、同一类型的单独服务器上,还是不同架构类型的单独服务器上,WebSphere MQ 通过消息队列发送和接收消息数据来促进应用程序之间的通信。然后应用程序使用这些消息中的信息与 Web 浏览器、业务逻辑和数据库进行交互。 WebSphere MQ 提供了一个安全可靠的传输层,用于在应用程序之间以消息形式不变地移动数据,但它不知道消息的内容。 WebSphere MQ 使用一组小型标准应用程序编程接口 (API),这些接口支持多种编程语言,包括跨所有平台的 Visual Basic、NATURAL、COBOL、Java 和 C。

WebSphere Message Broker 是为扩展 WebSphere MQ 而构建的,它能够理解通过 Broker 移动的每条消息的内容。客户可以根据每条消息的内容定义一组操作。 WebSphere Message Broker 提供的消息处理节点能够处理来自各种来源的消息,例如 Java 消息服务 (JMS) 提供者、超文本传输​​协议 (HTTP) 调用或从文件中读取的数据。通过将这些节点相互连接,客户可以在消息从一个应用程序流向其目的地时定义消息的链接操作。

Message Broker 可以执行以下操作:

匹配和路由服务之间的通信 不同传输协议之间的转换 在请求者和服务之间转换消息格式 识别和分发来自不同来源的业务事件

WebSphere MQ 和 WebSphere Message Broker 一起提供了一个全面的发布和订阅工具,将 Message Broker 的广泛传输和格式支持连接到 WebSphere MQ 的消息传递主干。 WebSphere Message Broker 使用高级功能(例如通过增强的发布节点的基于内容的发布和订阅)扩展了 WebSphere MQ 发布和订阅功能。这两个产品共享一个共同的发布和订阅域,用于基于主题和内容的操作

【讨论】:

【参考方案2】:

我只想补充两点:Message Broker(现为 IIB)包括一组优化且快速的解析器(XML、CSV 等)和有用的映射节点(msg-msg、msg-db)。 MQ 还用于来自配置管理器的内部配置消息。

【讨论】:

【参考方案3】:

Websphere MQ 是一个使用AMQ(异步消息协议)的软件。您可以通过 Websphere MQ 在您的应用程序之间实现异步消息传递,这将使您的基础架构松散耦合(即使基础架构中的其他应用程序停止运行,应用程序也可以继续工作)。

但是您的基础架构中的应用程序可能无法理解彼此的消息格式,因此仅将消息发送到目标应用程序可能还不够。您可以require transformation留言。

您可以通过使用 Websphere MQ API 编写自己的程序来做到这一点。 您的程序应该能够执行以下操作:

    从特定队列中选择消息(使用 MQGET) 应该能够理解消息。也就是说,它是一个 XML 消息。那么您的程序必须能够解析 XML 并读取 里面的数据。 阅读输入消息后,您将根据要求制作输出消息。 然后您要么发布消息,要么将消息放入某个特定队列(比如 TargetQ),以便目标应用程序可以获取 消息。然后目标应用程序将通过以下方式获取消息 在 TargetQ 上发出 MQGET 或订阅主题 从您的应用程序发布。

但是编写自己的程序会花费大量的开发时间和精力,而且可能有点复杂。

因此,IBM 提供了自己的软件来完成这项工作,即“Websphere Message Broker”

WMB 允许您创建程序 very easilya lot faster

WMB 中的适当节点将为您完成上述所有步骤。事实上,它提供了比上述步骤更多的功能。

Websphere MQ 仍然没有 HTTP 侦听器。但是,消息代理可以。它允许您以安全的方式托管 web services 并拥有基于 HTTP 的流等(支持 SSL)。

【讨论】:

很好的描述!只是一个简短的说明:WMB 现在从版本 9 开始被命名为 IIB。【参考方案4】:

MQ 为您提供消息传递的基础架构:队列和主题 - IBM MQ

IBM Integration Bus(以前称为 WebSphere Message Broker)允许您应用常见的EAI patterns,例如路由、转换

希望对您有所帮助。

最好, 帕特里克

【讨论】:

【参考方案5】:

MQ 主要用于将消息从一个系统转换到另一个系统。 WMB(websphere 消息代理)将位于 QMGR 和转换消息之间,并根据系统要求/业务逻辑实现更改消息格式的内容。

斯里努 D

【讨论】:

MQ 是用来传输消息的,不是用来转换消息的。

以上是关于队列管理器和消息代理之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Python中上下文管理器和装饰器之间的区别

谁能解释 Eclipse 中项目资源管理器、包资源管理器和导航器之间的确切区别?

WebSphere MQ 入门指南

MQ队列管理器搭建

脚本管理器和工具包脚本管理器的区别

WebSphere MQ----通道