2017-01-25 74 views
0

當我手動確認消費者應用程序中的偏移量,但我想消費者可以重新獲取unacknowledge消息自動,但我不能做到成功。
這是我的配置陽明: spring-cloud-stream kafka消費者如何自動重新獲取unacknowledge消息?

cloud: 
    stream: 
    kafka: 
     binder: 
     brokers: ****:**** 
     za-nodes: **** 
     replication-factor: 1 
     bindings: 
     input: 
     consumer: 
     auto-commit-offset: false 
     auto-commit-on-error: false 
     reset-offsets: true 

回答

0

酒店resetOffsets似乎沒有現在使用:https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/48#issuecomment-273111200

默認情況下,消費者的auto.offset.reset將被設置爲latest(即如果明確設置一組爲消費者使用spring.cloud.stream.bindings.input.group結合)

+0

我設置了組。如果重新啓動應用程序,沒關係。 但我想檢索unacknowledge消息而不重新啓動應用程序 – gemorn

+0

如果您想從「最新」開始,則不必設置組。此外,對於手動確認,您可以看到以下示例:http://docs.spring.io/spring-cloud-stream/docs/Brooklyn.BUILD-SNAPSHOT/reference/htmlsingle/index.html#_example_setting_literal_autocommitoffset_literal_false_and_relying_on_manual_acking –

0

卡夫卡沒有承認個人信息的能力 - 一旦保存了組/分區的偏移量,所有先前的消息都被認爲是「確認」的 - 手動確認允許的是在例如異步處理消息的情況下推遲偏移量提交過程(並且自動確認將保存偏移量在消息實際處理之前)。

resetOffsets目前尚不支持(這是我們在遷移到新的客戶端之後本質上已經下降的功能 - 請參閱https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/67),但不幸的是,文檔沒有反映出這一點。

相關問題