0
我想从事件中心向服务总线中的多个主题发送一个事件。我正在使用以下代码使用foreach将事件发送到多个主题以获取主题名称。 由于这是一个foreach循环,我得到了延迟。有没有更好的方法来做到这一点。向服务总线中的多个主题发送一个事件
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.我可以在一个主题中有多个订阅,但是当订阅数量增加时,它最终会变慢。感谢您的快速响应。 –
我不确定#2。发送给主题的消息分发到订阅是在代理上完成的。这听起来很不错,它比发送单个消息到所有主题要慢。 –
#2您可能是对的,而我们使用主题的另一个原因是因为如果我们使用订阅,那么每个订阅没有任何连接字符串,最终我们需要共享每个聆听者的连接字符串,如果他们知道任何他们将能够听到消息的主题中的其他订阅名称。 –