请在来自横向扩展发布者(使用 DB 订阅存储)的多个发布和具有横向扩展订阅者(使用分发者)的多个订阅的上下文中考虑以下问题,其中使用自动 MSI 的初始部署、升级等定期进行安装和卸载.
- 使用 DB 订阅存储,如果 DB 出现故障会怎样?如果需要访问订阅数据库才能发布消息,它将如何传递?它会迷路吗?对 Bus.Publish 的调用会引发异常吗?
- 假设您不需要停机部署:如果您想将特定发布的订阅数据库移动到不同的服务器怎么办?你如何管理这样的过渡?
- 同样的问题也适用于订阅方的分销商:如果您想移动分销商端点怎么办?我能想到的一种情况是,如果您有多个订阅使用单个分发服务器,那么如果您想将其中一些订阅移动到另一个分发服务器以减少负载可能会很困难。
- 对于这样的设置(最初和持续升级),安装/卸载场景会是什么样子?似乎您需要一些特殊的安装/卸载脚本来部署“逻辑发布”和订阅数据库,以及“逻辑订阅”和分发者。发布者实例不需要任何特殊的安装/卸载逻辑(因为它们只是使用配置的订阅数据库开始发布消息,然后在卸载时停止)。除了分发者端点的正确配置之外,订阅者工作节点在安装时不需要任何特殊的东西,但需要卸载逻辑以确保将它们从工作节点的分发者列表中删除。