簡體   English   中英

spring-cloud-stream kafka離線消費者消息丟失

[英]spring-cloud-stream kafka offline consumer messages lost

我一直在玩spring-cloud-stream(1.0.0.BUILD-SNAPSHOT和kafka binder),並注意到消費者離線時,發送的任何消息都會丟失。 當我啟動消費者時,它不會處理發送給kafka的積壓請求。 這是故意的嗎?

我們肯定需要改進我們的文檔,但這里有一些指示。

如果您希望使用者處理停止時生成的消息,則需要指定使用者組名稱,例如spring.cloud.stream.bindings.<bindingName>.group=foo 當指定了一個使用者組時,如果具有相同使用者組的客戶端已經運行(即我們記錄了該使用者消耗的偏移量)或者b) spring.cloud.stream.binder.kafka.start-offset指定的值,則應用程序啟動a)最新的未使用消息spring.cloud.stream.binder.kafka.start-offset (可以是earliestlatest ,代表主題的開頭或結尾)。 因此,重新啟動保留消費者群體的消費者將從他們離開的地方消費,新消費者將根據啟動選項啟動。 如果未指定組,則消費者將被視為“匿名”,並且僅對其啟動后生成的消息感興趣,因此它將始終在分區集的末尾開始。

如果您想繞過已保存的值,則可以使用spring.cloud.stream.binder.kafka.reset-offets=true ,這將導致客戶端重置已保存的偏移並從spring.cloud.stream.binder.kafka.start-offset指示的值開始spring.cloud.stream.binder.kafka.start-offset

這反映了0.8.2預期的行為(並得到支持)。 一旦我們升級到0.9,我們將相應地更新。

是; 默認設置是從主題末尾開始監聽。

使用

spring:
  cloud:
    stream:
      binder:
        kafka:
          start-offset: earliest

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM