如何暂停消费者在春季云流中消费消息

时间:2019-03-31 04:01:40

标签: spring-boot spring-amqp spring-cloud-stream

我遇到了一种情况,我想暂停使用者以停止通过Spring Boot应用程序使用消息,并且消息不应从队列中丢失,我正在使用amqp和spring cloud stream。

https://github.com/spring-cloud/spring-cloud-stream/blob/master/docs/src/main/asciidoc/spring-cloud-stream.adoc#binding_visualization_control指出只有kafka拥有此选项。

我可以做些什么来解决此问题吗?

1 个答案:

答案 0 :(得分:0)

Kafka需要暂停,因为如果您stop()容器,则代理将重新平衡并将分区分配给另一个实例。使用RabbitMQ,当对容器进行stop()填充时,队列仍然存在,因此在那里不会出现问题(只要您指定group)。

您不能stop()用作匿名使用者(没有group)的容器,因为此类使用者使用自动删除队列。无法暂停此类使用者(AMQP协议没有此类机制)。