C# Azure 为故障转移设置第二个 ServiceBus

我尝试按照Microsoft 文档中提到的步骤设置第二个 ServiceBus 以防止 ServiceBus 中断。


但是,当我运行下面的代码时,配对永远不会完成:


public class ServiceBusContext

{

    public ServiceBusContext()

    {

        var nsManager1 = NamespaceManager.CreateFromConnectionString("...");

        var messageFactory1 = MessagingFactory.Create(nsManager1.Address, nsManager1.Settings.TokenProvider);


        var nsManager2 = NamespaceManager.CreateFromConnectionString("...");

        var messageFactory2 = MessagingFactory.Create(nsManager2.Address, nsManager2.Settings.TokenProvider);


        var sendAvailabilityOptions = new SendAvailabilityPairedNamespaceOptions(nsManager2, messageFactory2, 10, TimeSpan.Zero, false);


        messageFactory1.PairNamespaceAsync(sendAvailabilityOptions).Wait();


        Debug.WriteLine("Cannot reach this code");

    }

}

如何正确设置具有故障转移功能的 ServiceBuse?


繁星coding
浏览 167回答 1
1回答

蝴蝶不菲

虽然旧客户端仍然可以使用此功能,但我不鼓励使用它。除了该功能的一些有问题的设计问题外,它对您需要发送和接收的流程也没有真正的帮助。它仅设计用于仅发送方案,利用故障转移(辅助)命名空间作为存储。这反过来也增加了成本。更不用说这是一个遗留库。当代的等价物是 .NET StandardMicrosoft.Azure.ServiceBus库。相反,它提供了不完全相同的Geo-DR 功能(仅限高级版),但提供故障转移是您的命名空间消失的真正关键场景。除此之外,命名空间应该是 24/7 可用的。通过对具有服务总线的可用区(仅限高级版)的额外支持,您将获得在 Azure 区域内具有故障隔离位置的财务支持 SLA,提供冗余电源、冷却和网络。这应该消除对配对命名空间的需要。
打开App,查看更多内容
随时随地看视频慕课网APP