AMQP与WebSphere MQ的区别

15
我们正在开发一个支持AMQP队列的应用程序。一些客户正在使用Websphere MQ。我想知道在功能方面这两种协议在高层次上可互换吗?我正在使用celery,它应该允许我抽象出低级别的东西,只要我能编写一个Websphere MQ后端。我试图弄清楚的是这将是多么困难的挑战。
Websphere MQ是否提供AMQP功能的超集? 任何一个有可能会让我的生活变得困难的“特性”吗?
2个回答

10

2015年6月23日更新
IBM宣布推出了MQ Light,这是他们对AMQP的实现。他们的方向声明表示,他们打算在未来的某个时候提供功能,允许在MQ Light上设计运行的程序在MQ上运行,但尚未宣布具体时间。截至本文撰写时,MQ Light处于公开Beta测试阶段。


使用一个简单的桥接应用程序,从一个系统读取并写入另一个系统,可以相对容易地移动有效载荷。它们都有队列和主题,并且可以进行显式路由。
有趣的部分包括以下有趣的概念...
- 映射回复目标。特别是动态回复目标。 - 事务性 - 任何比“从这个队列/主题中获取,放到另一个队列/主题中”更复杂的路由方式。例如,根据队列名称路由到多个目标的网关。 - 消息级安全性。 - 映射连接级安全性的身份。 - 不可能进行端到端消息加密。
因此,如果您所需的只是类似于“从AMQP:QUEUEA获取,放入WMQ:QUEUEB”,并且事务性不重要,则应该很容易实现。除此之外,一切都取决于您想做什么。

可能应该发布一个问题,但是IBM Web MQ的本地传输是什么?我以为它是MQTT,但显然那是他们最近添加的东西。 - Adam Gent
3
这是一种专有的线路协议。通常我喜欢采用开放标准,但WMQ的一个优点是IBM可以根据需要更改线路协议。因此,当他们想要在单个套接字上共享多个连接并添加预读取流作为性能增强时,他们很容易这样做,尽管这意味着改变了线路格式。这些举措对性能有巨大的影响。如果他们公开了协议,那么这将会更加困难。然而,随着越来越多的异步出现在开放网络中,支持开放协议或在某些时候发布MQ可能变得必要。 - T.Rob

1

我可以在8.0.0.4中使用AMQP通道功能将IBM MQ与其他AMQP产品(如RabbitMQ)集成吗? - sijo0703
2
我怀疑不太可能。RabbitMQ支持AMQP 0.9协议,而IBM MQ支持AMQP 1.0。这两个协议版本的差异足以使它们不能互换。即使它们都使用相同的协议级别,也没有产品能够作为客户端连接到另一个供应商的服务器 - 据我所知。 我猜可能可以编写自己的客户端应用程序,使用AMQP 0.9与RabbitMQ服务器交互,并使用AMQP 1.0与IBM MQ队列管理器交互,使用该应用程序作为两者之间的桥梁。 - LaurenceBonney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接