我遇到了一种情况,我想暂停使用者以停止通过Spring Boot应用程序使用消息,并且消息不应从队列中丢失,我正在使用amqp和spring cloud stream。
我可以做些什么来解决此问题吗?
答案 0 :(得分:0)
Kafka需要暂停,因为如果您stop()
容器,则代理将重新平衡并将分区分配给另一个实例。使用RabbitMQ,当对容器进行stop()
填充时,队列仍然存在,因此在那里不会出现问题(只要您指定group
)。
您不能stop()
用作匿名使用者(没有group
)的容器,因为此类使用者使用自动删除队列。无法暂停此类使用者(AMQP协议没有此类机制)。