【问题标题】:Synchronising transactions between two different services using producer and consumer approach使用生产者和消费者方法同步两个不同服务之间的事务
【发布时间】:2021-03-12 21:21:51
【问题描述】:

我想创建一个使用消费者和生产者架构的分布式应用程序。

所以,我基本上有两种不同的服务,其中一个将处理订单请求,另一个将处理 Payments

我的问题是:一个服务可以同时是消费者和生产者吗?

提供有关消费者和生产者流程的更多上下文:

1 - 订单服务向订单队列发布消息 2 - 支付服务将使用此消息,然后将执行其内部支付工作,得到一些结果,我们将编写并将新消息发布到另一个队列(订单状态队列) 3 - 订单服务也会消费订单状态队列,检查消息并在他的数据库内部更新订单

对不起,长文,但我想探索更多使用队列和分布式系统的场景

【问题讨论】:

    标签: architecture rabbitmq producer-consumer


    【解决方案1】:

    一个服务可以同时是消费者和生产者吗?

    是的。

    但是,您不应使用与 MQ 服务器的相同连接来进行消费和发布。让您的服务建立两个连接。

    这将帮助您更轻松地处理一些潜在的难题,一般而言,它可以防止消费者和发布商相互干扰。例如:

    • 断开连接:如果两个连接中的一个断开,则不会影响另一个
    • TCP 背压:如果发布者太快,MQ 服务器可能会施加背压,那么消费者可能无法发送 ACK。

    你可以找到这个和更多有趣的建议here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-07
      • 2019-11-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多