在向Azure主题发送消息之前,重新创建主题客户端是一个好习惯



我正在使用microsoft.azure.servicebus,版本= 2.0.0.0汇编以连接到Azure主题。代码在

下面
public void SendMessage(Message brokeredMessage) 
{
    var topicClient = new TopicClient(_configuration.ConnectionString, topicName, _defaultRetryPolicy);
    await topicClient.SendAsync(brokeredMessage);
    await topicClient.CloseAsync();
}

我想知道每次我需要向主题发送消息时创建主题客户端是一个好习惯,还是应该在应用程序启动上创建主题客户端,并在每次我需要发送时继续使用相同的客户端消息?

我需要考虑任何性能或可伸缩性问题吗?

来自 Azure Service Bus Best Practices post:

重复使用工厂和客户

服务总线客户端对象(例如queueclient或MessageSender)是 通过MessagingFactory对象创建,该对象也提供 连接的内部管理。您不应该关闭消息传递 您发送的工厂或队列,主题和订阅客户 消息,然后在发送下一条消息时重新创建它们。 关闭消息工厂删除与服务总线的连接 重新创建时,服务和新连接建立 工厂。建立连接是您的昂贵操作 可以通过重新使用相同的工厂和客户对象来避免多个工厂和对象 操作。您可以安全地使用queueclient对象发送 来自并发异步操作和多个线程的消息。

基于此,您应该重复使用Topic Client对象。

最新更新