在向Azure Topic发送消息之前,重新创建主题客户端是一种好做法吗
我正在使用Microsoft.Azure.ServiceBus,版本=2.0.0.0程序集连接到Azure主题。代码如下在向Azure Topic发送消息之前,重新创建主题客户端是一种好做法吗,azure,azureservicebus,brokeredmessage,Azure,Azureservicebus,Brokeredmessage,我正在使用Microsoft.Azure.ServiceBus,版本=2.0.0.0程序集连接到Azure主题。代码如下 public void SendMessage(Message brokeredMessage) { var topicClient = new TopicClient(_configuration.ConnectionString, topicName, _defaultRetryPolicy); await topicClient.SendAsync(b
public void SendMessage(Message brokeredMessage)
{
var topicClient = new TopicClient(_configuration.ConnectionString, topicName, _defaultRetryPolicy);
await topicClient.SendAsync(brokeredMessage);
await topicClient.CloseAsync();
}
我想知道在每次需要向主题发送消息时创建主题客户端是否是一种好的做法,还是应该在应用程序启动时创建主题客户端,并在每次需要发送消息时继续使用相同的客户端
是否有任何需要考虑的性能或可伸缩性问题?
< P>: 重用工厂和客户机 服务总线客户端对象(如QueueClient或MessageSender)是 通过MessagingFactory对象创建,该对象还提供 连接的内部管理。您不应该关闭邮件 工厂或队列、主题和订阅客户端 消息,然后在发送下一条消息时重新创建它们。 关闭消息传递工厂将删除与服务总线的连接 服务,并在重新创建时建立新连接 工厂建立连接是一项昂贵的操作,您需要 可以通过多次重复使用同一工厂和客户机对象来避免 操作。您可以安全地使用QueueClient对象进行发送 来自并发异步操作和多线程的消息 基于此,您应该重用主题客户机
对象