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

时间:2018-08-15 08:52:12

标签: activemq wso2esb talend esb mule-esb

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

这是我自己的定义:ESB是一种体系结构,而不是允许异构应用程序通过BUS相互通信的工具。 ESB的特殊之处在于它可以拥有生产者和消费者。例如,生产者可以将消息发送到总线内的主题/队列,而作为订户的三个消费者将收到相同的消息,因此避免了点对点流。 ESB的第二个特点是,它可以管理安全性,并在所有内容进入ESB时将其登录到一个位置。 我也听说过(路由)(使用Talend ESB)设置了移动消息的规则,但是我并没有真正理解这一点(如果您有任何我感兴趣的示例)。当然,可以创建Web服务来公开数据。这些服务必须具有可伸缩性,并且能够抵抗“单点故障”。

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

Architecture ESB

(我在平局上犯了一个错误,这不是队列,而是主题!)

上述过程的步骤:

  • 生产者:它会监听不同数据库中的更改(更新,插入...),一旦发生更改,它就会检索数据并将其发送到队列。
  • li>
  • 队列:队列包含生产者发送的所有消息,并将它们发送给消费者。
  • 消费者:消费者将提高数据质量,并将新数据插入数据库中。

对我来说,此架构尊重ESB,因为activeMQ就像总线一样。他在这里担任调解人。你觉得呢?

1 个答案:

答案 0 :(得分:1)

我认为您的做法正确。但是,我认为在确保每个消息流使用不同的队列方面存在重要区别。通常,最佳做法是按消息类型排队。

消息流可以共存于同一代理基础结构上,从而使您具有更高的密度,更好的利用率,并能够根据需要在一个地方窃听消息流。

在您的情况下:

  1. 数据库A->队列:// A->使用者A
  2. 数据库B->队列:// B->消费者B
  3. 数据库C->队列:// C->消费者C