【问题标题】:Can we define my architecture as an ESB?我们可以将我的架构定义为 ESB 吗?
【发布时间】:2018-08-15 08:52:12
【问题描述】:

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

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

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

(我画错了,不是队列而是主题!)

上述过程的步骤:

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

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

【问题讨论】:

    标签: activemq wso2esb talend esb mule-esb


    【解决方案1】:

    我认为你是在正确的轨道上。但是,我认为确保每个消息流使用不同的队列有一个重要的区别。通常最好的做法是为每个消息设置一个队列。

    消息流可以全部共存于同一个代理基础架构上,让您拥有更高的密度、更好的利用率以及根据需要在一个地方窃听消息流的能力。

    在你的情况下:

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

    【讨论】:

    • 首先,我犯了一个错误,我使用的不是队列而是主题。队列是一对一目标和一对多主题。我理解你向我解释的好模式,我会注意的。我有一个问题,你认为使用 ActiveMQ 类似于 ESB 架构吗?因为我正在阅读 Talend ESB 的文档(我不知道你是否知道这个工具),我并没有真正看到与 ETL 的区别。
    • 是的,发布+订阅模式(通常使用主题实现)是一种普遍接受的 ESB 模式。 ETL 的不同之处在于它通常是一个同步且在运行时紧密耦合的过程(这意味着,在该过程的持续时间内,所有系统都必须在线)。使用 ESB(或消息代理)允许运行时解耦。此外,ESB 的不同之处在于可以添加数据流的未来侦听器,而无需更改生产者或其他消费应用程序。通常,使用 ETL,它是一种“推送”模型,其中添加新消费者需要更改代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2018-04-21
    相关资源
    最近更新 更多