Architecture 使用生产者和消费者方法同步两种不同服务之间的交易

Architecture 使用生产者和消费者方法同步两种不同服务之间的交易,architecture,rabbitmq,producer-consumer,Architecture,Rabbitmq,Producer Consumer,我想使用消费者和生产者体系结构创建一个分布式应用程序 因此,我基本上有两种不同的服务,其中一种将保存订单请求,另一种将处理付款 我的问题是:一项服务能否同时成为消费者和生产者 要提供有关消费者和生产者流程的更多上下文,请执行以下操作: 1-订单服务将消息发布到订单队列 2-支付服务将使用此消息,然后执行其内部支付工作,有了一些结果,我们将写入并将新消息发布到另一个队列(订单状态队列) 3-订单服务还将使用订单状态队列,检查消息并在其数据库中内部更新订单 很抱歉,本文太长了,但我想探讨更多使用队列

我想使用消费者和生产者体系结构创建一个分布式应用程序

因此,我基本上有两种不同的服务,其中一种将保存订单请求,另一种将处理付款

我的问题是:一项服务能否同时成为消费者和生产者

要提供有关消费者和生产者流程的更多上下文,请执行以下操作:

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

很抱歉,本文太长了,但我想探讨更多使用队列和分布式系统的场景

一项服务能否同时成为消费者和生产者

但是,对于使用和发布,您不应使用到MQ服务器的相同连接。让您的服务建立两个连接

这将帮助您更轻松地处理一些潜在的难题,一般来说,这将防止消费者和出版商相互干扰。例如:

  • 断开连接:如果两个连接中的一个断开,则不会影响另一个
  • TCP背压:如果发布服务器太快,MQ服务器可能会应用背压,那么使用者可能无法发送ACK
你可以找到这个更有趣的建议