Azureデータセンターの障害と、ペアになったネームスペースの場合、サービスバスが挿入を処理する方法をシミュレートしています。Azureサービスバス:プライマリネームスペースに到達できない場合のPairedNamespacesの挿入
ms docsはと述べている:主キューに送信に失敗した時に
は、送信者はランダムに選ばれたバックログキュー
に メッセージの送信を開始しかし、私はキュークライアントことに気づきました/ message senderは常にプライマリネームスペースにヒットしようとしており、セカンダリネームスペースに切り替わることはありません。
private MessagingFactory GetFactory(bool isReceiver = false)
{
var primaryConnectionString = PrimaryConnectionString();
var secondaryConnectionString = SecondaryConnectionString();
var primaryFactory =
MessagingFactory.CreateFromConnectionString(primaryConnectionString);
var secondaryMessagingFactory = MessagingFactory.CreateFromConnectionString(secondaryConnectionString);
var secondaryNamespaceManager = NamespaceManager.CreateFromConnectionString(secondaryConnectionString);
var sendAvailabilityOptions = new SendAvailabilityPairedNamespaceOptions(secondaryNamespaceManager,
secondaryMessagingFactory, 1, TimeSpan.FromSeconds(5), isReceiver);
primaryFactory.PairNamespaceAsync(sendAvailabilityOptions).Wait();
return primaryFactory;
}
とテストメッセージ送信のための:
var factory = GetFactory();
var messageSender = factory.CreateMessageSender(_queueName);
var msg = new BrokeredMessage(partition)
{
PartitionKey = partition,
SessionId = partition
};
messageSender.Send(msg);
を、私はそれをテストしてるの方法は、hostsファイル内のプライマリ名前空間URLにダミーのIPを関連付けることです。送信はタイムアウト例外(すべての後続の要求の場合)で失敗します。
私の送信者がセカンダリ名前空間に接触しようとしないので、pingタスクが切り替えることを選択していないと思います。問題はどこにありますか?
セカンダリ名前空間のバックアップキューが正しく作成されていることを説明してください。