我在系统中使用服务总线,并希望利用高级层服务总线https://github.com/Azure/azure-service-bus/tree/master/samples/DotNet/Microsoft.ServiceBus.Messaging/GeoDR/SBGeoDR2/SBGeoDR2的故障转移功能 我看到很少的代码示例可以帮助我执行此操作,但主要问题是何时通过代码执行故障转移,因为我们正在自动执行此操作,而不是手动执行。
我考虑过的一种解决方案是使用Polly(https://github.com/App-vNext/Polly#retry )库,并对某些异常使用重试功能;如果重试不成功,则执行故障转移。
基本上,我们的目的是使服务总线在我们的系统中具有高可用性,即使服务总线出现故障或节流超过15-30分钟,故障切换也应该发生。
但是,对于服务总线而言,哪些故障转移有意义的所有例外都是可能的?
我在下面列出了一些例外情况(https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.servicebusexception?view=azure-dotnet),但不确定这些例外情况是否适合我们的情况。 ServerBusyException ServiceBusCommunicationException ServiceBusTimeOutException
简而言之,我想说一下发生中断或停机时,如果尝试调用“ SendAsync”(https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.topicclient.sendasync?view=azure-dotnet)方法,servicebus会引发哪些异常。
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-outages-disasters。
答案 0 :(得分:0)
这可能显示ServerBusyException。服务总线中的故障转移和中断将属于服务器级别的问题。当您配置带有Azure监视器警报的Azure Service总线时,当出现中断或故障转移时,它将显示服务器错误。因此,我可能会显示服务器忙异常。谢谢