イベントハブから受信している1つのイベントをサービスバスの複数のトピックに送信したいとします。私は、トピック名を取得するためにforeachを使用して複数のトピックにイベントを送信するために、次のコードを使用しています。 これはforeachループなので、待ち時間が増えています。それを行うための良い方法はありますか?サービスバス内の複数のトピックに1つのイベントを送信
foreach (var topicname in GetTopics_ActiveList(payload).Result)
{
TopicClient Client = TopicClient.CreateFromConnectionString(connectionstring, topicname);
var payloadStream = new MemoryStream(Encoding.UTF8.GetBytes(payload));
//var msg = JsonConvert.SerializeObject(payloadStream);
//BrokeredMessage message = new BrokeredMessage(payloadStream, true);
BrokeredMessage message = new BrokeredMessage(payloadStream);
Client.Send(message);
}
1.処理中のイベントによってクライアントが変更されるためキャッシュできません。各イベントは特定の数のトピックに移動します。 2. 1つのトピックに複数のサブスクリプションを含めることはできますが、サブスクリプション番号が上がると、最終的には減速します。迅速な対応に感謝します。 –
#2については分かりません。トピックに送信されたメッセージのサブスクリプションへの配布は、ブローカ上で行われます。すべてのトピックに個別のメッセージを送信するよりも時間がかかりそうです。 –
#2あなたが正しいかもしれないし、話題を使用している他の理由は、サブスクリプションと一緒に行くとサブスクリプションごとに接続文字列がないため、最終的にはすべてのリスナーにトピックの接続文字列を共有する必要があるからですトピック内の他のサブスクリプション名は、メッセージを聞くことができます。 –