最佳实践

我正在尝试同步我拥有的三个微服务。

为了做到这一点,我实施了RabbitMQ。 看起来好像事情目前有效,但我不确定我是否遵循最佳实践,而且我找不到可以查看的参考,也许有人可以帮助我呢?

我正在尝试做什么:我有一个服务应该更新其他两个服务,每个服务都应该收到发送的消息。 我有两种类型的消息(保存和删除资源)。 *如果发生故障,队列应该恢复并重新发送消息。

我现在正在做的事:我建立了一个交换机,每个消费者都连接到两个不同的队列,每个队列都有一个队列(保存/删除)。 尽管目前我不需要过滤它们,但我之后使用了直接交换来过滤邮件。

每个队列都被命名,并且交换以及消息都是持久的,并且我正在消费我消费的消息。

问题我应该为每种类型的事件设置一个不同的队列,还是应该将消息发送到同一队列并过滤它们? 上述使用RabbitMQ是否是解决问题的正确方案。 最佳做法是什么?


你的设置是正确的。

在兔子队列设计中,一个常见的规则是针对一种类型的消费者队列(这里指的是不同的处理逻辑)。 所以,因为你有两种类型的消费者。 他们对不同类型的事件(保存/删除)有不同的逻辑,每个队列的一个队列是完全正确的。

如果你想只有一种类型的消费者,可以同时处理保存和删除事件,那么使用一个队列也是可以的。

但是两种类型的消费者和一个共享队列将不起作用。 当多个消费者订阅一个队列时,由于事件以循环方式发送给消费者,因此您的任一消费者只能接收一半的事件。

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

上一篇: best practice

下一篇: RabbitMQ configuration for multiple queues