【问题标题】:Azure Service Bus multiple QueueClientsAzure 服务总线多队列客户端
【发布时间】:2019-04-01 14:01:00
【问题描述】:

创建多个队列客户端以侦听不同的服务总线队列的最佳做法是什么?有一个 MessagingFactory 类,但是 Microsoft.ServiceBus.Messaging 似乎不再可用作 nuget 包(.net 核心控制台应用程序)。

将 QueueClient 视为静态对象,从单个主机进程创建多个 queueclients 的推荐模式是什么?

感谢您的反馈。

【问题讨论】:

  • QueueClient 在新包中不是静态的。变化是您需要管理您创建的对象的生命周期和连接,而不是依赖MessagingFactory 为您执行这些操作。
  • 太棒了!行得通。

标签: azure azureservicebus azure-servicebus-queues


【解决方案1】:

对于 .net 核心应用程序,您可以使用 Microsoft.Azure.ServiceBus 而不是 Microsoft.ServiceBus.Messaging nuget。由于这是基于 .net 标准构建的,因此可以在框架和核心应用程序中使用。类似于 Microsoft.ServiceBus.Messaging 的方法和类在此下可用。查看here 获取样本。

【讨论】:

【解决方案2】:

能够让它工作但不能使用依赖注入。任何有关改进此实施的建议将不胜感激。

Startup.cs

// 托管服务 services.AddSingleton();

ServiceBusListener.cs

    public class ServiceBusListener : BackgroundService, IServiceBusListener
    {
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            Console.WriteLine($"ServiceBusListener is starting.");

            Dictionary<string, QueueClient> queueClients = new Dictionary<string, QueueClient>();

            foreach (var queue in _svcBusSettings.Queues)
            {
                var svcBusQueueClient = new ServiceBusQueueClient(queue.Value, queue.Key);
                queueClients.Add(queue.Key, svcBusQueueClient.QueueClient);
            }   
        }
    }

ServiceBusQueueClient.cs

    public class ServiceBusQueueClient : IServiceBusQueueClient
    {
        private IQueueClient _queueClient;

        public QueueClient QueueClient
        {
            get { return _queueClient as QueueClient; }
        }

        public ServiceBusQueueClient(string serviceBusConnection, string queueName)
        {
            _queueClient = new QueueClient(serviceBusConnection, queueName);
            RegisterOnMessageHandlerAndReceiveMessages();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 2017-02-25
    • 1970-01-01
    • 2016-02-25
    • 2017-11-22
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多