簡體   English   中英

Azure 服務總線配對命名空間 - 模擬故障轉移

[英]Azure service bus paired namespace - simulate failover

我正在使用 azure 服務總線配對命名空間,並且需要能夠模擬到輔助命名空間的故障轉移。 我確實通過為主要命名空間輸入了錯誤的連接字符串來實現這一點,並看到它發生故障轉移並將消息發送到輔助命名空間。 這似乎不再奏效。 我無法通過 azure 管理門戶或其他任何地方找到使命名空間脫機的方法。 任何人有任何想法如何做到這一點?

這是我的代碼供參考

var pairedNamespaceConfiguration = this.pairedNamespaceConfigurationDictionary[configurationKey];
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(pairedNamespaceConfiguration.PrimaryNamespace.ConnectionString);
MessagingFactory secondaryMessagingFactory = MessagingFactory.CreateFromConnectionString(pairedNamespaceConfiguration.SecondaryNamespace.ConnectionString);
NamespaceManager secondaryNamespaceManager = NamespaceManager.CreateFromConnectionString(pairedNamespaceConfiguration.SecondaryNamespace.ConnectionString);

SendAvailabilityPairedNamespaceOptions sendAvailabilityOptions = new SendAvailabilityPairedNamespaceOptions(secondaryNamespaceManager, secondaryMessagingFactory, pairedNamespaceConfiguration.BacklogQueueCount, TimeSpan.FromSeconds(pairedNamespaceConfiguration.FailoverIntervalSeconds), false);
factory.PairNamespaceAsync(sendAvailabilityOptions).Wait();
MessageSender messageSender = factory.CreateMessageSender(pairedNamespaceConfiguration.PathName);
string messageContent = JsonConvert.SerializeObject(message);

using(BrokeredMessage brokeredMessage = new BrokeredMessage(messageContent))
{
    messageSender.Send(brokeredMessage);
}

修改您的 \\Windows\\system32\\drivers\\etc\\hosts 文件以將原始命名空間指向 127.0.0.1 之類的內容。 這將使原始命名空間連接失敗。

我正在使用此示例 地理復制和服務總線中繼消息來實現相同的想法。 也許它對你也有用。

所有服務總線實體都駐留在一個命名空間中。 命名空間附屬於數據中心。 為了允許數據中心之間的故障轉移,用戶必須為每個數據中心創建一個服務總線和 ACS 命名空間(如果使用 ACS)。 在出現數據中心故障時需要保持可訪問的任何服務總線中繼都必須在兩個命名空間中創建。

服務器打開兩個 NetTcp 中繼端點,在兩個命名空間中的每一個中都有一個。 服務器處理通過這些端點之一接收到的任何請求。 請注意,兩個中繼必須具有不同的名稱(例如,主中繼的地址是 sb://myPrimaryNamespace.servicebus.windows.net/myService-primary 和 b://mySecondaryNamespace.servicebus.windows.net/myService-secondary )。

客戶端將兩個復制的中繼之一視為活動中繼,另一個視為備份。 它打開一個通向活動中繼的通道並調用服務上的方法。 如果調用因任何不屬於服務合同的異常而失敗,則客戶端放棄通道,打開一個到備份中繼的通道,並再次調用服務方法。 客戶端會將新通道視為活動通道並繼續使用該通道,直到發生下一個故障。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM