我目前正在构建混合云解决方案,需要将消息写入队列以供以后处理。队列必须具有高可用性(99.999 +%正常运行时间)。
我的选择是读取/写入本地ZeroMQ高可用性对或Azure Service Bus的消息。我更愿意使用Azure Service Bus路由,但找不到有关Azure Service Bus高可用性配置的任何文档。
是否有人成功设置Azure Service Bus以实现高可用性?我知道无法更改任何Azure服务的单个实例的SLA。我正在考虑Azure Web Apps的故障转移功能。
答案 0 :(得分:2)
使用高于SLA值的服务可以做的主要事情是确保处理重试逻辑。这里的关键是任何中断的时间性质,并调整重试后退以处理边缘情况。有些人使用线性或指数退避来等待更长时间以使服务恢复。
此外,您可以在不同的区域中拥有多个服务总线以实现地理内容,并在两者之间对消息进行负载均衡或使用一个作为热备份。这可以帮助您解决任何区域中断问题,并在一个数据中心未满足其本地SLA时保持服务。
答案 1 :(得分:0)
您可以在此处找到适用于Azure Service Bus的SLA:legal/sla/service-bus/v1_0/
对于服务总线继电器,我们保证至少99.9%的时间, 正确配置的应用程序将能够建立一个 连接到已部署的中继。对于服务总线队列和主题,我们 保证至少99.9%的时间,正确配置 应用程序将能够发送或接收消息或执行其他操作 已部署的队列或主题上的操作。对于Service Bus Basic和 标准通知中心层,我们保证至少99.9% 时间,正确配置的应用程序将能够发送 通知或执行注册管理操作 尊重通知中心。适用于基本和标准的事件中心 等级,我们保证至少99.9%的时间,正确 配置的应用程序将能够发送或接收消息或 在事件中心执行其他操作。
答案 2 :(得分:0)
我们已经启动并运行了5年以上的服务总线中继,并且已经中断了一次。这是特定数据中心的中断,中继被配置并触及了许多服务。之后,我们通过在不同的数据中心位置实现辅助服务总线中继命名空间来实现冗余。重新配置的代码设置为检查每个连接上的连接并切换主连接和辅助连接。我们平等对待它们,所以一旦我们失败了#34;该命名空间将成为主要的。
答案 3 :(得分:0)
Service Bus现在在名称空间级别支持地理灾难恢复和地理复制。
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-geo-dr