4.21.7. 关于队列联合
队列联合提供了一种在其他远程代理本地代理中平衡单个队列负载的方法。
为实现负载平衡,本地代理从远程队列检索消息,以满足本地消费者的消息需求。示例如下所示:
图 4.5. 对称队列联合
远程队列不需要重新配置,它们不必位于同一代理或同一集群中。所有建立远程链接所需的配置,联合队列位于本地代理中。
4.21.7.1. 队列联合的优点
下文介绍了一些您可能选择配置队列联合的原因。
- 增加容量
- 队列联合可以创建由多个代理分发的"逻辑"队列。这个逻辑分布式队列的容量比单个代理中的队列要高。在这个设置中,会尽可能多地从最初发布到的代理中消耗了相关的消息。只有在需要负载平衡时,系统才会在 federation 中移动信息。
- 部署多区域设置
在多区域设置中,您可能在一个地区或场区和消费者处有一个消息制作者。但是,您最好将制作者和使用者连接保持本地给给定区域。在这种情况下,您可以在生产者和消费者的每个区域中部署代理,并使用队列联合在区域间在广域网(WAN)中移动消息。示例如下所示:
图 4.6. 多区域队列联合
- 在安全企业 LAN 和 DMZ 之间通信
在网络安全中,非军事区 (DMZ)是一个物理或逻辑子网,其中包含并公开一个企业的外部服务到不被信任的服务,通常是较大的网络,如互联网。企业本地区域网络(LAN)的其余部分保持与防火墙后面的这个外部网络隔离。
如果大量消息制作者位于 DMZ 中,在安全企业 LAN 中有多个消费者,可能不适合让制作者连接到安全企业 LAN 中的代理。在这种情况下,您可以在 DMZ 中部署一个代理,以供生产者发布消息。然后,企业 LAN 中的代理可以连接到 DMZ 中的代理,并使用联合队列从 DMZ 中的代理接收信息。