【问题标题】:How to bridge between IBM MQSeries and ActiveMQ Artemis 7.x?如何在 IBM MQSeries 和 ActiveMQ Artemis 7.x 之间架起桥梁?
【发布时间】:2019-09-23 22:52:51
【问题描述】:

有没有人成功地在 IBM MQSeries (MQS) 和 ActiveMQ Artemis 7.x (AMQ 7) 之间建立了一座桥梁,以便后者可以向前者发送和接收消息?目前,通过在代理本身上部署骆驼路由和 MQS 库,我在 MQS 7.5 和 AMQ 6.3 之间桥接没有问题。但是,同样的方法不再适用,因为每个路由部署都需要重新配置代理并重新启动。
提前感谢您的任何反馈。

【问题讨论】:

  • 我的回答是否解决了您的问题?如果是这样,请将其标记为正确,以帮助将来有相同问题的其他用户。如果不是,请详细说明原因。谢谢!

标签: ibm-mq activemq-artemis


【解决方案1】:

ActiveMQ Artemis 附带的一些示例可能会有所帮助:

  • examples/features/sub-modules/ 目录中的“inter-broker-bridge”示例。此示例演示如何在 Web 应用程序中使用 Spring 将 org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl 的实例部署到代理。
  • examples/features/standard/ 目录中的“camel”示例。此示例演示如何在 Web 应用程序中使用 Spring 将 Camel 路由部署到代理。

我无法确定是否可以在运行时更新这些中的任何一个,因为我实际上并没有尝试过。这两个选项都应该能够在任一方向移动消息(即从 Artemis 到 MQS 或从 MQS 到 Artemis)。

另一个选择就是到run Camel standalone 并在那里部署你的路线。这将为您提供更大的灵活性,因为它允许您专门选择路由运行的硬件以及 Camel JVM 消耗的资源量。直接在代理上运行 Camel 路由虽然很方便,但不是很合适,因为代理是代理而不是应用程序服务器。

需要明确的是,ActiveMQ Artemis 和 IBM MQSeries 彼此之间不直接兼容,并且不应该是这样。大多数(如果不是全部)JMS 代理实现都是如此。 ActiveMQ Artemis JMS 桥等组件和 Camel 等集成平台的作用是通过使用通用 API 与两个代理(在本例中为 JMS)对话来解决兼容性问题。任何实现 JMS 的代理都可以使用这些方法进行集成。

【讨论】:

  • 我已经在我的实验室环境中尝试了前两个选项(inter-broker-bridge 和 camel on the broker)。它适用于从 Artemis 向 MQS 9.1 发送消息的用例。我无法从 MQS 9.1 的另一个方向发送消息。但是,我有两个问题。第一个是我们的生产运行 MQS 7.5。你知道这个版本是否与Artemis兼容吗?第二个问题是 RedHat 不支持任何这些解决方案,独立的骆驼也不支持(我还没有尝试过)。他们建议在我们还没有的 Fuse 中使用骆驼。
  • 我已更新我的答案以解决您的评论。我无法谈论红帽支持或不支持的内容。你必须和他们谈谈这件事。如果您是 Red Hat 客户,我建议您直接与他们合作解决此问题。
猜你喜欢
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-10
相关资源
最近更新 更多