当前位置:   article > 正文

RabbitTemplate中convertSendAndReceive方法与convertAndSend方法的区别

convertandsend

场景

这里只展示核心的代码,完整的代码请参见 SpringBoot整合RabbitMQ(完整版)

// 向发布订阅模式里面发送消息
public void sendPublish() {
    for (int i = 0; i < 5; i++) {
        // rabbitTemplate.convertSendAndReceive("exchange_fanout", "", "测试发布订阅模型:" + i);
        rabbitTemplate.convertAndSend("exchange_fanout", "", "测试发布订阅模型:" + i);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

测试结果

访问 http://localhost:8080/sendPublish

使用 convertAndSend 方法时的结果:输出时没有顺序,不需要等待,直接运行

在这里插入图片描述

使用 convertSendAndReceive 方法时的结果:使用此方法,只有确定消费者接收到消息,才会发送下一条信息,每条消息之间会有间隔时间

在这里插入图片描述

总结

convertSendAndReceive(…):可以同步消费者。使用此方法,当确认了所有的消费者都接收成功之后,才触发另一个convertSendAndReceive(…),也就是才会接收下一条消息。RPC调用方式。

convertAndSend(…):使用此方法,交换机会马上把所有的信息都交给所有的消费者,消费者再自行处理,不会因为消费者处理慢而阻塞线程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/728282
推荐阅读
相关标签
  

闽ICP备14008679号