企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### **4.1.4 暂停/恢复侦听器容器** ***** 版本 2.1.3 向侦听器容器添加了 pause() 和 resume() 方法。以前,您可以在 ConsumerAwareMessageListener 中暂停使用者,然后通过侦听 ListenerContainerIdleEvent 来恢复它,以提供对 Consumer 对象的访问。尽管您可以通过事件侦听器将使用者放在空闲容器中,但在某些情况下,这不是线程安全的,因为无法保证在使用者线程上调用事件侦听器。为了安全地暂停/恢复使用者,您应该使用侦听器容器上的方法。 pause() 在下一个 poll() 之前生效;在当前poll() 返回之后,resume 才生效。容器暂停后,它将继续对使用者进行poll() ,如果正在使用组管理,则避免了重新平衡,但不会检索任何记录;有关更多信息,请参阅 Kafka 文档。 从版本 2.1.5 开始,可以调用 isPauseRequested() 来查看是否已调用 pause() 。但是,消费者可能尚未真正停下来。如果所有 Consumer 均已实际暂停,则 isConsumerPaused() 将返回 true。 此外,从 2.1.5 版本开始,ConsumerPausedEvent 和 ConsumerResumedEvent 都以容器作为源属性发布,而partitionPatition 则包含在 partitions 属性中。