如何在IBM MQSeries和ActiveMQ Artemis 7.x之间架起桥梁?

时间:2019-09-20 08:17:47

标签: ibm-mq activemq-artemis

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

1 个答案:

答案 0 :(得分:1)

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

  • export const LabelBasicExample = () => { // Use getId() to ensure that the ID is unique on the page. // (It's also okay to use a plain string without getId() and manually ensure uniqueness.) const textFieldId = getId('anInput'); return ( <div> <Label>I'm a Label</Label> <Label disabled={true}>I'm a disabled Label</Label> <Label required={true}>I'm a required Label</Label> <Label htmlFor={textFieldId}>A Label for An Input</Label> <TextField id={textFieldId} /> </div> ); }; 目录中的“经纪人中间桥”示例。此示例演示了如何在Web应用程序中使用Spring将examples/features/sub-modules/的实例部署到代理。
  • org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl目录中的“骆驼”示例。此示例演示了如何在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的代理。