在我的应用程序中使用AMQP(RabbitMQ)实现高可用性

我正在组建一个基于队列的分布式系统,所有标准的东西。 我们使用最新版本的RabbitMQ来提供我们的消息传输层。

我有一些关于实现高可用性的问题(对于我的应用程序而不是实际的RabbitMQ),我无法通过阅读文档来回答。 希望得到一些建议,这很可能是我对Rabbit / AMQP缺乏理解导致问题:)

问题:我有一个消息制作者(称为主要)。 有一个且只有1个消息制作者。 有一个二级生产者(称为备份),如果它失败,它应该从主要生产者手中接管。

我如何使用现有的RabbitMQ功能实现这一点?

想法:使用主要连接到的“独占”队列。 备份将尝试连接到此队列。 当主服务器出现故障时,备份将获得与队列的连接并建立对流程的控制。

我应该用什么正确的模式来实现这个目标? 我找不到任何有关竞争生产商的文档,希望你的建议! 其他人如何做到这一点?

亲切的问候TM


如果你想一次只有一个制作人 - 你用RabbitMQ机制买不起它(除非你会得到一些插件,但我不知道这种类型)。 您可以在应用程序级别上控制生产者编号。

PS:

看起来你没有很好地理解AMQP的想法,生产者发布消息给交易所,同时消费者从队列中获取消息。 经纪人(RabbitMQ)将消息从交换路由到一个或多个队列(实际上,它也可以将消息路由到其他交换机,但这是另一回事)。

链接地址: http://www.djcxy.com/p/5835.html

上一篇: Using AMQP (RabbitMQ) for High Availablity in my applications

下一篇: Achieving JMS/AMQP messaging patterns using Redis