跳到主要内容

动态消息路由

作为事件网格的底层技术,动态消息路由(DMR)可以在企业扩展时发现单个事件代理和服务(或节点)不足以满足业务需求。即使最大、配置最丰富的节点也有其局限性,但通过将多个节点网络连接并分散负载,可以克服这些限制。这样,多个节点可以连接在一起,服务的负载远远超过单个节点的可能。

企业应用程序也分布在多个站点——包括多个公共和私有云以及传统数据中心——这推动了在所有这些位置和接口之间智能共享信息的简单方法的需求。例如,您的组织可能拥有使用事件代理的本地应用程序和服务,这些需要连接到AWS Lambda、Azure Event Hubs或Google Functions等云服务。

动态消息路由(DMR)是一种允许连接节点自动确定如何转发事件消息的机制。您使用DMR创建一个网络或事件网格,将同一站点内的各个代理连接在一起(水平扩展)或跨站点连接(多站点扩展)以交换订阅信息。有了事件网格,客户端不需要知道网络中的其他站点。一旦管理员建立了事件代理和服务之间的关系,事件代理就会动态发现如何路由消息。客户端应用程序不需要采取任何特殊行动就可以在网格中发布或消费消息。它们只需继续交换消息,而不需要考虑如何将这些消息发送到需要去的地方。有了DMR,您可以在网格内移动任何应用程序,或更改这些应用程序的兴趣点,网格会自动更新路由——无需任何干预。

DMR支持两种基本用例:水平扩展和多站点扩展。更复杂的拓扑结构也是可能的。如果这里讨论的用例没有满足您的需求,请联系Solace以协助设计和实施您的DMR网格。

水平扩展

对于水平扩展,您将代理连接在一起以创建一个DMR集群。集群中的每个节点(事件代理或事件代理服务)都与每个其他节点有连接。这些在同一集群内的连接称为内部链接;总体上,我们称之为“全网格”链接。在这个全网格集群中,每个节点都了解所有其他节点,以便在网络中发布的每个事件都能无缝路由到消费应用程序。

DMR集群通常用于同一站点的软件和硬件事件代理。PubSub+云事件代理服务通常设置为单节点集群,不使用水平扩展。

img

有关更多详细信息,请参阅DMR订阅传播和数据转发以及水平扩展示例。

多站点扩展

在多站点扩展中,您将两个或更多的集群连接在一起。集群之间的连接称为外部链接。每个集群通过每个集群中的网关节点连接在一起。并非每个集群都需要连接到每个其他集群;然而,消息只在直接连接的集群之间传播。例如,如果没有在两个集群之间配置外部链接,消息就不会在它们之间传递。如下图所示,由于集群A和集群C之间没有连接,消息不会在它们之间传递。

img

有关更多详细信息,请参阅DMR订阅传播和数据转发以及多站点连接示例。

事件网格中的消息流

让我们看看DMR在场景中的工作方式。下图显示了一个在本地水平扩展的集群,该集群连接到公共云(以AWS为例)中的DMR集群和平台即服务(PaaS)(以Kubernetes为例)中的另一个集群。

一个发布应用程序(A)上线并发布到一个主题,比如说tools/orders。一个消费应用程序(B)在同一个集群上线,绑定到其队列,并订阅主题tools/orders。事件从应用程序A流向应用程序B,保持发布应用程序A的服务质量(保证或直接)。

此外,所有订阅在连接的集群之间共享。这意味着在一个集群中由应用程序发布的事件消息可以无缝路由到其他集群中的消费应用程序。

在下面的示例中,另一个消费者(C)上线并订阅相同的主题tools/orders。现在任何主题为tools/orders的事件都会被路由到新消费者。随着更多发布者和消费者连接和断开连接,网格中的路由将动态更新。

img

DMR还是消息VPN桥接?

DMR和VPN桥接是两种可以用来互连代理的技术。两者都支持保证(持久)和直接(非持久)消息。DMR相比VPN桥接的优势在于,使用DMR您不需要静态配置主题订阅来定义哪些事件通过代理间链接流动。DMR自动将您的保证和直接消息路由到事件网格中的所有感兴趣的订阅者。

PubSub+ Broker Manager包括一个点击连接向导,可以轻松地在几次鼠标点击中创建DMR网格。点击连接也适用于VPN桥接,但您必须配置桥接订阅的主题。

当您想要严格控制哪些事件通过代理链接时,应使用VPN桥接。当您想要以最小的配置工作量构建大型事件网格,并在整个网格中动态传播订阅时,DMR是推荐的选择。

特性交互锚

灾难恢复(复制)您可以在DMR网络(或事件网格)内利用灾难恢复(使用复制和Config-Sync)。复制提供业务连续性,并允许关键应用程序在数据中心发生重大服务中断期间继续运行。有关更多信息,请参见数据中心复制以实现灾难恢复和使用DMR网络配置复制。

消息VPN桥接桥接和DMR兼容,可以同时使用。然而,我们建议您不要在相同的事件代理之间配置VPN桥接链接和DMR链接,因为这种配置会导致消息重复传递。

多节点路由多节点路由(MNR)和DMR不能同时使用。它们是互斥的。

如果您想从MNR迁移到DMR,请联系Solace以获得协助。

下一步锚

  • 要深入了解DMR的工作原理,请参见DMR订阅传播和数据转发。
  • 要了解如何设置事件网格的高级视图,请参见使用DMR设置事件网格。
  • 查看示例,了解如何配置水平扩展和多站点连接。