【发布时间】:2020-05-19 10:22:18
【问题描述】:
我正在使用非阻塞(异步)向 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 的持续时间结束。
【问题讨论】:
-
哪个方法仍然被阻止?发送还是添加回调?
-
@AlexeiKaigorodov 发送方法
标签: java spring-boot asynchronous apache-kafka kafka-producer-api