请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

结算服务与订单服务FANOUT的疑惑

我看老师您写的结算微服务声明的交换机是:

 channel.exchangeDeclare(
                    "exchange.settlement.order",
                    BuiltinExchangeType.FANOUT,
                    true,
                    false,
                    null
            );

而订单微服务声明的交换机是:

channel.exchangeDeclare(
                    "exchange.order.settlement",
                    BuiltinExchangeType.FANOUT,
                    true,
                    false,
                    null
            );

我自己的理解是:结算微服务应该是声明的应该是自己接收的信息,方向应该是订单—>结算,所以我觉得应该是exchange.order.settlement,而不是exchange.settlement.order。同理,订单微服务针对结算接收的消息应该是结算—>订单,所以应该是exchange.settlement.order,而不是exchange.order.settlement。

发送消息的时候,结算微服务发送的交换机才是exchange.settlement.order,因为这个时候的方向是结算—>订单;而订单微服务发送的交换机是exchange.order.settlement,这个时候的方向是订单—>结算。

希望老师能指点一下疑惑。

正在回答 回答被采纳积分+3

1回答

Moody 2021-01-17 20:13:30

你说的这个命名方法确实更合理些??

0 回复 有任何疑惑可以回复我~
  • 两个问号,又有了新的疑惑,是合理还是质疑还是其他。
    回复 有任何疑惑可以回复我~ 2021-08-28 15:54:10
  • 一般来说,微服务声明要发送的交换机是更合理的,因为要保证发送时,交换机存在,否则就会发送失败。
    严格来说,不存在“接收用的交换机”这个说法,接受消息是从队列接收的,不用关心这个消息是从哪个交换机路由过来的。
    回复 有任何疑惑可以回复我~ 2021-08-28 23:03:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信