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");
}
}
Как правильно настроить ServiceBuses с функцией аварийного переключения?
1 ответ
Хотя эта функция все еще доступна для старого клиента, я не рекомендую использовать ее. Помимо нескольких проблем с дизайном, связанных с этой функцией, она также не помогает в процессе, когда вам нужно отправлять и получать. Он предназначен только для сценария "только для отправки", используя в качестве хранилища резервное (вторичное) пространство имен. Что, в свою очередь, увеличивает стоимость.
Не говоря уже о том, что это устаревшая библиотека. Современный эквивалент.NET Standard Microsoft.Azure.ServiceBus
библиотека. Вместо этого, он предлагает функцию Geo-DR (только Premium), которая не совсем такая же, но предлагает аварийное переключение в критически важных ситуациях, когда ваше пространство имен исчезло. В остальном пространство имен должно быть доступно 24/7. Благодаря дополнительной поддержке зон доступности с сервисной шиной (только Premium) вы получаете
Соглашение об уровне обслуживания с финансовой поддержкой с изолированными местоположениями в пределах региона Azure, обеспечивающее избыточное питание, охлаждение и сетевое взаимодействие.
что должно устранить необходимость в парных пространствах имен.