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);
}
});
当发送操作完成它的工作时,这个工作完美。
但是当出现连接问题时(例如服务器宕机),结果变为非异步并且方法保持阻塞直到[=20=的持续时间结束].
这在异步 KAfka 生产者中很自然。你有两个选择
- 要么减少 max.block.ms 但不要减少太多。
- 您可以等待确认
您还可以为 onCompletion() 创建回调函数
我正在使用非阻塞(异步)向 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);
}
});
当发送操作完成它的工作时,这个工作完美。
但是当出现连接问题时(例如服务器宕机),结果变为非异步并且方法保持阻塞直到[=20=的持续时间结束].
这在异步 KAfka 生产者中很自然。你有两个选择
- 要么减少 max.block.ms 但不要减少太多。
- 您可以等待确认
您还可以为 onCompletion() 创建回调函数