我正在使用Spring-Kafka 1.2.1版本,並且當卡夫卡服務器關閉/不可達時,異步發送呼叫塊一段時間。它似乎是TCP超時。該代碼是這樣的:春季卡夫卡異步發送呼叫塊
ListenableFuture<SendResult<K, V>> future = kafkaTemplate.send(topic, key, message);
future.addCallback(new ListenableFutureCallback<SendResult<K, V>>() {
@Override
public void onSuccess(SendResult<K, V> result) {
...
}
@Override
public void onFailure(Throwable ex) {
...
}
});
我在春天,卡夫卡代碼採取一個非常快看,它似乎只是傳遞任務一起卡夫卡客戶端庫,翻譯回調互動的未來對象交互。查看kafka客戶端庫,代碼變得更加複雜,我沒有花時間理解這一切,但我想它可能是在同一個線程中進行遠程調用(至少是元數據?)。
作爲一個用戶,我期望Spring-Kafka方法能夠立即返回未來,即使遠程kafka服務器無法訪問。
任何確認,如果我的理解是錯誤的,或者這是一個錯誤,將受到歡迎。目前爲止,我最終使其在異步方面處於異步狀態。
另一個問題是Spring-Kafka文檔在開始時說,它提供了同步和異步發送方法。我找不到任何不會返回期貨的方法,也許文檔需要更新。
如果需要,我很樂意提供任何進一步的細節。謝謝。
謝謝您的答覆。不,我沒有使用這個註釋,文檔中沒有任何關於它的信息。我會嘗試一下並讓你知道它是否能解決問題。 –
使用@EnableAsync不幸的是沒有改變任何東西=/ –