繁体   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