【问题标题】:EasyNetQ message publisher patternEasyNetQ 消息发布者模式
【发布时间】:2017-02-22 17:26:16
【问题描述】:

我正在围绕 EasyNetQ 编写一个包装器来将消息发布到 RabbitMQ。有大量消息需要发布。我应该使用 using 模式使用 IBus 发布消息,还是应该将 IBus 类型 var 声明为类级别的静态 var 并在应用程序结束时处理?

using (IBus bus = RabbitHutch.CreateBus(rabbitMQConnectionString))
{
 bus.publish("ss");
}

谢谢

【问题讨论】:

  • 这主要是一个基于意见的问题,我会说没有正确的答案,取决于上下文。为什么不让应用程序选择是创建静态总线还是实例化它?
  • 有大量消息需要发布。我主要关心多次创建和处理 IBus 实例。另一方面,如果我将 IBus 类型 var 作为静态类级别成员,我担心并发问题。我可以应用锁定,但这会影响性能
  • 为什么并发让您担心消息队列到位?来自队列的消息仅由订阅应用程序出队一次。无论如何,锁定总线实例不会阻止应用程序多次发送相同的消息。

标签: c# easynetq


【解决方案1】:

您应该为您的应用程序创建一个 IBus 实例并在应用程序结束时释放。它旨在创建到 RabbitMQ 的单个连接,并且是线程安全的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2016-07-03
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多