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

时间:2021-02-16 19:37:48

标签: rabbitmq microservices event-sourcing rabbitmq-shovel rabbitmq-federation

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

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

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

我想满足以下几点:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

快乐的消息!

相关问题