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
我在 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