### **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 屬性中。