美文网首页
kafka 同步、异步发送

kafka 同步、异步发送

作者: 陆阳226 | 来源:发表于2020-05-12 21:01 被阅读0次

kafka producer默认是异步发送:

  • 在初始化producer实例时,会创建一个sender线程负责批量发送消息
  • producer将消息暂存在缓冲区,消息根据topic-partition分类缓存
  • 消息达到batch.size或者时间达到了linger.ms,sender线程将该批量的消息发送到topic-partition所在的broker

同步发送

如果需要使用同步发送,可以在每次发送之后使用get方法,因为producer.send方法返回一个Future类型的结果,Future的get方法会一直阻塞直到该线程的任务得到返回值,也就是broker返回发送成功。

kafkaTemplate.send("testJson", message).get();

异步发送回调

可以从返回的future对象中稍后获取发送的结果,ProducerRecord、RecordMetadata包含了返回的结果信息

ListenableFuture<SendResult<String, Message>> future = kafkaTemplate.send("testJson", message);
future.addCallback(new ListenableFutureCallback<SendResult<String, Message>>() {
    @Override
    public void onFailure(Throwable ex) {
        ex.printStackTrace();
    }

    @Override
    public void onSuccess(SendResult<String, Message> result) {
        System.out.println(result.getProducerRecord());
        System.out.println(result.getRecordMetadata());
    }
});

相关文章

  • kafka 同步、异步发送

    kafka producer默认是异步发送: 在初始化producer实例时,会创建一个sender线程负责批量发...

  • Kafka生产者

    目录 只发送,不关心是否成功 同步发送 异步发送 序列化方法 消费者代码 代码运行前提 完整代码 Kafka提供了...

  • (4)kafka的应用

    下面展示的例子是kafka的客户端的使用,包含了发送端的同步发送消息和异步发送消息的使用,以及接收端的消费消息的使...

  • iOS网络NSURLConnection和NSURLSessio

    HTTP通信过程 NSURLConnection发送网络请求 block 方式 发送同步请求发送同步请求 发送异步...

  • RocketMQ生产者

    官方文档 一、概要 消费者主要是去发送数据 常用的发送消息的方式有以下几种 同步发送 同步顺序发送 异步发送 异步...

  • kafka架构师2-图解kafka源码1发送者流程

    架构 Client生产发送流程Server:kafka 网络架构kafka 数据存储kafka 副本同步kafka...

  • ActiveMq的发送原理

    持久化消息和非持久化消息的发送策略:消息同步发送和异步发送ActiveMQ支持同步、异步两种发送模式将消息发送到b...

  • RocketMQ架构设计之发送消息的实现

    RocketMQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、单向(Oneway)发送。 同步:发送者...

  • Kafka系列4-Kafka API

    一. Producer API 消息发送流程  Kafka 的 Producer 发送消息采用的是异步发送的方式。...

  • RocketMQ系列3-消息发送流程

    概念 1、消息发送方式 Rocketmq提供三种方式可以发送普通消息:同步、异步、和单向发送。 同步:发送方发送消...

网友评论

      本文标题:kafka 同步、异步发送

      本文链接:https://www.haomeiwen.com/subject/qdginhtx.html