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