gpt4 book ai didi

apache-camel - 使用 Camel 的分布式 ActiveMQ

转载 作者:行者123 更新时间:2023-12-03 14:03:42 25 4
gpt4 key购买 nike

我正在学习 ActiveMQ 和 Camel,目标是创建一个像这样工作的小原型(prototype)系统:

alt text
(来源:paulstovell.com)

(big)

在 Orders 系统中下订单时,会向任何订阅者(发布/订阅系统)发送一条消息,他们可以在处理订单中发挥作用。 Orders、Shipping 和 Invoicing 应用程序都有自己的 ActiveMQ 安装,因此如果三个系统中的任何一个系统脱机,其他系统可以继续运行。有些东西负责在 ActiveMQ 安装之间移动消息。

如果它们在同一个 ActiveMQ 实例上,让 Apache Camel 通过路由将消息从一个队列移动到另一个队列非常容易。所以这适用于管理订阅队列。

下一个挑战是将消息从一个 ActiveMQ 实例推送到另一个实例,这就是我不确定接下来要看什么的地方。

  • Camel 可以在不同的 ActiveMQ 安装之间路由吗? (如果它们在不同的机器上,我无法弄清楚 JMI 端点 URI 会是什么)。
  • 我了解 ActiveMQ 有 store and forward能力。这是我用来在订单和运输/发票之间移动消息的方法吗?
  • 或者这就是 Apache ServiceMix是为了解决?
  • 最佳答案

    这是一个非常简单的异步事件驱动应用程序,非常适合 ActiveMQ 和 Camel。

    实际上,您不会将消息从一个 ActiveMQ 实例显式移动到另一个实例。它的工作方式是使用所谓的 network of brokers .在您的情况下,您将拥有三个代理:ActiveMQ-purple、ActiveMQ-green 和 ActiveMQ-blue。 ActiveMQ-purple 使用 ActiveMQ-green 和 ActiveMQ-blue 创建单向代理网络。这允许 ActiveMQ-purple 根据消费者的需求将消息存储并转发到 ActiveMQ-green 和 ActiveMQ-blue。

    Orders 应用程序接受 ActiveMQ-purple 上的订单队列中的订单。 Orders 应用程序使用 Camel 来消费和处理消息,以确定它是发票消息还是发货消息。 Camel 将消息路由到 ActiveMQ-purple 上的发票队列或运输队列。

    消费者需求来自 Invoicing 应用程序和 Shipping 应用程序。 Invoicing 使用 Camel 从 ActiveMQ-green 上的发票队列中消费消息。 Shipping 应用程序使用 Camel 从 ActiveMQ-blue 上的发货队列中消费消息。由于代理网络以及消费者对 ActiveMQ-green.invoicing 队列和 ActiveMQ-blue.shipping 队列的需求,消息将从 ActiveMQ-purple 转发到适当的代理和队列。无需将消息显式路由到特定代理。

    我希望这回答了你的问题。让我知道你是否还有。

    布鲁斯

    关于apache-camel - 使用 Camel 的分布式 ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279417/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com