Kafka3.0.0版本 |
您所在的位置:网站首页 › kafka生产者源码解析 › Kafka3.0.0版本 |
外部数据发送到kafka集群 首先创建一个main线程,然后调用Sender方法,经过Interceptors拦截器、Serializer序列化器、Partitioner分区器 通过Partitioner分区器,把数据放到RecordAccumulator双端队列(一个分区会创建一个队列),RecordAccumulator双端队列默认大小32m,每一批次大小16k 只有数据积累到batch大小之后,sender才会发送数据。默认16k;如果数据迟迟未达到batch.size,sender等待linger设置的时间到了之后就会发送数据。单位ms,默认值是0ms,表示没有延迟。 Sender线程不断从 RecordAccumulator 中拉取消息,以每一个节点broker为key,后面追加数据放到一个队列中,往broker中发送数据,发送到kafka集群后,kafka集群有一个副本机制。 kafka集群接收到数据后,有一个应答机制。 标识 含义 0 生产者发送过来的数据,不需要等数据落盘应答。 1 生产者发送过来的数据,Leader收到数据后应答。 -1(all) 生产者发送过来的数据,Leader和ISR队列里面的所有节点收齐数据后应答。-1和all等价。如果成功,清理掉RecordAccumulator双端队列中的数据。 如果失败,进行retries重试,重试次数为int的最大值。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |