簡體   English   中英

Spring Kafka 生產者不能異步工作

[英]Spring Kafka producer not work asynchronous

我正在使用非阻塞(異步)向 Kafka 發送消息:

    ListenableFuture<SendResult<Integer, String>> future = template.send(record);
    future.addCallback(new ListenableFutureCallback<SendResult<Integer, String>>() {

        @Override
        public void onSuccess(SendResult<Integer, String> result) {
            handleSuccess(data);
        }

        @Override
        public void onFailure(Throwable ex) {
            handleFailure(data, record, ex);
        }

    });

當發送操作完成它的工作時,這完美地工作。

但是當出現連接問題(例如服務器宕機)時,結果變為非異步並且該方法保持阻塞狀態,直到 max.block.ms 的持續時間結束。

這在 Async KAfka 生產者中很自然。 你有兩個選擇

  1. 要么減少 max.block.ms 但不要減少太多。
  2. 你可以等待確認

您還可以為 onCompletion() 創建回調函數

暫無
暫無

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

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