微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RabbitMQ:微服务通信的铲子与联邦

如何解决RabbitMQ:微服务通信的铲子与联邦

我花了很多时间试图弄清楚我应该使用 RabbitMQ federation 插件还是 shovel。

基本上我有两个微服务。我希望其中一个向另一个发送消息。每个微服务都有不同的rabbitMQ集群,所以我需要使用Federation/shovel。

我阅读了这篇文章 When to use RabbitMQ shovels and when Federation plugin?,但仍然无法弄清楚/做出决定。

我想满足以下几点:

  1. 松耦合
  2. 微服务彼此不了解——即第一个微服务发出一条消息,说“我已经完成了 x”。第二个微服务只是监听那个“事件”并采取相应的行动..
  3. 将来我“可能”想要添加更多微服务,每个微服务都有自己的 rabbitMQ 集群/vhost。

基于此信息 - 您推荐什么,铲或联合?

解决方法

为什么不只用一个集群来处理所有事情? RabbitMQ 是为处理 10k+ 交换和队列而构建的,实际上除了内存或磁盘空间之外没有上限。为每个微服务设置集群工作量太大,会产生不必要的开销。使用 vhost 也不应该用于此,而是用于每个业务领域。

我只使用铲子,我用它们将消息从我的生产环境传输到测试,因此我可以使用真实数据进行测试。使用脚本进行设置非常容易。是的,您应该只使用脚本执行此操作。使用 UI 太慢了。

我知道这并不能直接回答您的问题,但我希望它能让您深思。

快乐的消息!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。