Я использую неблокирующую (Asyn c) отправку сообщения в 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.