RabbitMQ 用于集群环境的 receiveAndConvert

RabbitMQ's receiveAndConvert for clustered environment

我在 SpringBoot 应用程序中实现了这个方法

@Scheduled(fixedDelay = 5000)
public void pullMessage() {
    MessageDTO message = null;

    try {
        message = rabbitTemplate.receiveAndConvert(properties.getQueueName(), new ParameterizedTypeReference<MessageDTO>() {});
    // more code here...


}

我每 5 秒从 RabbitMQ 中提取一条消息并用它处理一些事情。该应用程序在 Kubernetes 上 运行,现在我必须复制 POD。在这种情况下,两个 pods 可以拉取相同的消息吗?

如果所有实例的队列都相同,则否:只有一个消费者从队列中获取消息。这就是队列模式的根本目的。

有关发布-订阅模式,请参阅 AMQP 文档:https://www.rabbitmq.com/tutorials/tutorial-three-java.html

一次不会只有一个实例处理消息,拥有多个消费者的全部目的是应用程序不会有任何停机时间!

参考RabbitMQ的官方文档以获得更多说明! https://www.rabbitmq.com/tutorials/tutorial-one-java.html