簡體   English   中英

關閉卡夫卡消費者

[英]Shutting down Kafka Consumer

我在此鏈接中閱讀了Kafka高級消費者的詳細信息,並看到以下聲明-

實際上,更常見的模式是無限期地使用睡眠並使用關閉鈎子來觸發干凈關閉。

是否有任何執行此操作的示例或有幫助的指針?

這將是一個無限循環的例子

public void run() {
    try {
      consumer.subscribe(topics);
      while (true) {
          ConsumerRecords<String, String> records = consumer.poll(Long.MAX_VALUE);
        //do something
      }
    } catch (WakeupException e) {
      // do nothing we are shutting down 
    } finally {
      consumer.close();
    }
  }

  public void shutdown() {
    consumer.wakeup();
  }
}

這將是您的關機鈎子。

@PostConstruct
    private void init(){
        addShutdownHook(); 
    }

 private void addShutdownHook(){
   Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

            @Override
            public void run() {
                shutdown();
            }
        }));
    }

暫無
暫無

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

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