2015-12-26 139 views
0

当在酒吧/支线情节发布消息到Azure的ServiceBus主题,我目前持有到和重用的TopicClient需要多长时间?

Microsoft.ServiceBus.Messaging.TopicClient

一个实例我已经包裹在一个组件,它实现了创建和它的使用IDisposable,这样TopicClient可以在处理时关闭,但是我不确定维护与ServiceBus的连接的成本(如果有的话)。

随着时间的推移发送多个消息时,这是否被认为是最佳实践,或者我应该为每条消息创建一个新的客户端?

MSDN是不是这是很有帮助的除了对线程安全的部分:https://msdn.microsoft.com/library/azure/microsoft.servicebus.messaging.topicclient.aspx

+0

我不确定最佳实践,但在例如NServiceBus的代码中,我看到的唯一检查是TopicClient可能会被关闭,之后他们会创建一个新的,否则它们会重新使用一个更老的。请参阅:https://github.com/Particular/NServiceBus.AzureServiceBus –

回答

0

TopicClient/QueueClient相对便宜创造和保持,作为连接由引擎盖下的MessagingFactory维持。如果没有客户端,连接可能会中断,所以最好在客户需要的时候继续服务,并且切实可行。避免新客户和重复使用现有客户是好事。

可以从多个线程使用客户端,也可以同时发送/接收而不设置锁定。这就是线程安全部分试图传达的信息。

+0

你不会相信它!就在我读到你的答案之前(并质疑你的权威 - 抱歉),我在Azure Event Hub上加载了一个Channel 9视频(https://channel9.msdn.com/Events/TechEd/Europe/2014/CDP-B307?ocid=播放器)。谁开始介绍? Clemens Vasters。我认为这是你。 –

+0

这就是我,确实:) –