一定是一个简单的问题,但我没有真正找到答案。我将创建一些 asp.net 托管服务,在其中启动将发送和接收来自 azure 服务总线(队列)的消息的线程。让我们看一下接收托管服务,它在启动 HostedService 期间有效地创建
ServiceBusClient
和 ServiceBusProcessor
实例,然后始终仅调用回调。
我想知道我是否应该担心任何与故障转移相关的行为,这将迫使我重新创建客户端,假设天蓝色服务器暂时不可用(只是示例)。
据我了解,答案是否定的,在启动期间创建
client
和 processor
应该足够了,只要问题消失,回调就会像以前一样继续调用,但最好确认一下。
您所询问的场景似乎是暂时中断,最终会得到解决,并且不需要移动到不同的服务总线命名空间。
假设上述内容是正确的,答案是“否” - 您的应用程序不需要执行任何操作。
服务总线客户端根据服务操作的需要按需创建和恢复连接。 如果连接丢失,下一个服务操作将检测到它并重新创建它。
处理器具有高度弹性,能够从诸如此类的瞬时故障中恢复。 一旦启动,它将继续运行并尝试通过读取和发送消息来取得进展。 失败将报告给您的错误处理程序,并且处理器将继续永远重试,直到明确停止为止。