【问题标题】:How to configure MassTransit in an unreliable network environment?如何在不可靠的网络环境中配置 MassTransit?
【发布时间】:2017-04-11 13:07:08
【问题描述】:

我正在尝试将 MassTransit 与 RabbitMQ 结合使用。 基本概念在测试项目中起作用,但我需要的是以下内容:

我的系统将有一个或多个服务器来响应现实生活中的事件(电话)。这些事件将通过 MassTransit 和 RabbitMQ 转换为消息,这些消息将由一个或多个接收器通过单独的服务器接收,该服务器设置为 RabbitMQ 主机。到目前为止一切顺利。

但是,我不能假设我总是在发布者和主机之间建立连接。假设发布服务器将继续消费现实生活中的事件,但现在无法发布它的消息。

所以,问题是:MassTransit 是否有某种机制以某种方式在本地存储消息,直到重新建立连接? 或者我应该在每个发布服务器上安装 RabbitMQ,以便创建本地交换?然后我必须让交换机在重新连接后同步。

【问题讨论】:

    标签: c#-4.0 rabbitmq masstransit rabbitmq-exchange


    【解决方案1】:

    可能您必须实施存储和转发策略。无需通过 MassTransit 和 RabbitMQ 直接发布消息,您可以将消息存储在持久性存储库(本地数据库)中,并通过 Masstransit 将之前存储的消息的通知委托给其他进程。这种方法通常被称为“客户端高可用性”。这不会像 RabbitMQ 实现的那样替代服务器上的标准 HA(高可用性)。但这是在分布式系统中使用的好方法(就像您描述的那样),因为它可以在服务器故障的情况下为您提供很多帮助(例如,RabbitMQ 服务器上的问题导致您仍然在商店中丢失一些消息一些客户,因此你可以让它再次处理)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 2014-06-09
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多