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