基于AMQP的微服务注册和发现



我想在AMQP (RabbitMQ)上维护微服务(几种不同类型)拓扑,并使用中央注册表来维护正常运行时间和配置:

  • 所有微服务连接到AMQP并发布其存在
  • 一个主服务想要发现某种类型的所有worker服务
  • 重新启动的worker服务将从中央存储库读取其最后的配置

像etcd和ZooKeeper这样的产品是在HTTP上工作的,而不是在AMQP上。

在AMQP上有标准的方法吗?

感谢

这里RabbitMQ的问题是你需要的是一种特殊的持久化——但这在RabbitMQ中并不存在。

具体来说,你可以考虑使用"state of world"特性(RabbitMQ中缺少)。这基本上意味着代理会记住给定键(或其他组合)的最后一条消息。可用于实现发现服务。

BUT -我仍然推荐使用例如ZooKeeper,因为它还提供了检测突然微服务断开的工具;一个需要活动"服务器端"的功能;功能。

最新更新