我们可以将我的架构定义为 ESB 吗?

Can we define my architecture as an ESB?

我已经阅读了许多关于 ESB(企业服务总线)的不同定义,但我并不清楚。

这是我自己的定义:ESB 是一种架构,而不是一种允许异构应用程序通过 BUS 相互通信的工具。 ESB的特殊性在于它可以有生产者和消费者。例如,一个生产者可以向总线内部的一个topic/queue发送一条消息,三个作为订阅者的消费者会收到同一条消息,这样就避免了点对点的流转。 ESB 的第二个特点是它允许在一个地方管理安全和日志,因为一切都在 ESB 内部。 我还听说 "routes" 设置了移动消息的规则(使用 Talend ESB),但我真的不明白这一点(如果您有任何我感兴趣的示例)。当然,可以创建 Web 服务来公开数据。这些服务必须是可扩展的并且能够抵抗 "Single Point of Failure".

我创建了一个架构,想知道它是否是 ESB 架构。

(我画错了,不是Queue而是Topic!)

上述过程的步骤:

对我来说,这种架构尊重 ESB,因为 activeMQ 就像一条总线。他在这里充当调解人。你怎么看?

我认为您的方向是正确的。但是,我认为有一个重要的区别可以确保每个消息流使用不同的队列。通常,每个消息类型都有一个队列是最佳做法。

消息流可以在同一个代理基础设施上共存,让您拥有更高的密度、更好的利用率,并能够根据需要在一个地方窃听消息流。

你的情况:

  1. 数据库 A -> queue://A -> 消费者 A
  2. 数据库 B -> queue://B -> 消费者 B
  3. 数据库 C -> queue://C -> 消费者 C