我正在考虑使用网络负载均衡器在我的订阅者实例之间负载均衡消息,而不是使用 NServiceBus 分发器(据我所知,它基本上只是一个软件负载均衡器)。每个订阅者实例都将有一个同名的队列用于传递消息,并且将有一个虚拟 IP 在订阅者之间循环。发布者只会知道虚拟 IP 和队列名称。
以下是我理解的这样做的利弊:
- 优点
- 无需安装 NServiceBus Distributor
- 当我们向外扩展时,需要管理/更新的事情少了(我们已经使用 F5 对这些机器进行负载平衡,而且我们的数据中心购买者对此了如指掌)
- 少一个故障点(是的,NLB 可能会失败,但让我们面对现实吧,F5 将比在 Windows 上运行的 NServiceBus Distributor 稳定得多)
- 无需集群服务器即可拥有我们的集群 MSMQ。2 台服务器比在 F5 中添加另一个 VIP 要贵得多。
- 缺点
- NServiceBus Distributor 允许您更轻松地查看消息的积压,因为您可以监控 Distributor 上的单个队列。这使您很容易知道何时应该添加更多工作节点。
- NServiceBus Distributor 在控制工作线程的数量等方面更聪明。比 NLB 给你更多的控制?(不确定这个)
我是否准确地捕捉到了这一点?我知道建议使用 NServiceBus Distributor,并且在反对该建议之前,我想了解更多原因。