4.22.2. 地址联合的通用拓扑
下面介绍了一些用于地址联合的常见拓扑结构。
- 对称拓扑
在对称拓扑中,制作者和使用者连接到每个代理。队列及其消费者可以接收由任一制作者发布的消息。对称拓扑的示例如下所示:
图 4.1. 对称拓扑中的地址联合
为对称拓扑配置地址联合时,将 address 策略的
max-hops
属性的值设置为1
非常重要。这样可确保 仅复制一次 消息,从而避免循环复制。如果此属性设为更大的值,使用者将收到同一消息的多个副本。- 完整网格拓扑
完整的网格拓扑与对称设置类似。三个或多个代理相互对称联合,创建完整的网格。在这个设置中,制作者和消费者连接到每个代理。队列及其消费者可以接收任何制作者发布的消息。此拓扑的示例如下所示:
图 4.2. 完整网格拓扑中的地址联合
与对称设置一样,在为完整网格拓扑配置地址联合时,必须将地址策略的
max-hops
属性的值设置为1
。这样可确保 仅复制一次 消息,从而避免循环复制。- Ring topology
在代理环中,每个联合地址仅上游到环中的另一个地址。此拓扑的示例如下所示:
图 4.3. ring 拓扑中的地址联合
当您为环拓扑配置联合时,为了避免循环复制,必须将地址策略
的 max-hops
属性设置为n-1
,其中 n 是环中的节点数。例如,在上面显示的环拓扑中,max-hops 的
值设置为5
。这样可确保环中的每个地址都 准确看到消息一次。环形拓扑的一个优点在于,设置成本低廉,因为您需要进行的物理连接数量。但是,这种拓扑的缺点是,如果单个代理失败,整个环会失败。
- Fan-out 拓扑
在 Fan-out 拓扑中,单个主地址由联合地址树链接到。任何发布到主地址的消息都可以被任何连接到树中的代理的消费者接收。该树可以配置为任何深度。也可以扩展树形,无需在树中重新配置现有代理。此拓扑的示例如下所示:
图 4.4. fan-out 拓扑中的地址联合
当您为 fan-out 拓扑配置联合时,请确保将地址策略的
max-hops
属性设置为n-1
,其中 n 是树中的级别数。例如,在上面显示的 fan-out 拓扑中,max-hops
的值设置为2
。这样可确保树中的每个地址都 准确看到消息一次。