我正在学习 ActiveMQ 和 Camel,目标是创建一个像这样工作的小原型系统:
(来源:paulstovell.com)
在 Orders 系统中下订单时,会向任何订阅者(发布/订阅系统)发送一条消息,他们可以在处理订单中发挥作用。Orders、Shipping和Invoicing应用程序都有自己的 ActiveMQ 安装,因此如果三个系统中的任何一个系统脱机,其他系统都可以继续运行。有些东西负责在 ActiveMQ 安装之间移动消息。
如果它们在同一个 ActiveMQ 实例上,让 Apache Camel 通过路由将消息从一个队列移动到另一个队列非常容易。所以这适用于管理订阅队列。
下一个挑战是将消息从一个 ActiveMQ 实例推送到另一个实例,这就是我不确定接下来要看什么的地方。
- Camel 可以在不同的 ActiveMQ 安装之间路由吗?(如果它们在不同的机器上,我无法弄清楚 JMI 端点 URI 会是什么)。
- 我了解 ActiveMQ 具有存储和转发功能。这是我用来在订单和运输/发票之间移动消息的方法吗?
- 或者这就是Apache ServiceMix想要解决的问题?