1.producer发送数据的总体流程

1.producer发送数据的总体流程

在这里插入图片描述
1.创建一个kafkaproducer对象

2.会有一个拦截器,拦截一些消息,实际用处不大

3.之后经过序列化

4.经过分区器,将消息发送到对应的分区

5.消息缓存到recordacuumulator,kafka实际不是一条一条去发送的,而是封装成一个批次一个批次去发送的,这样吞吐量会比较高

6.缓存这里会有很对Dqueue队列,队列与分区有关系,每一个分区会对应一个队列,每个队列里面会有多个批次recordbatch(默认16k)

7.真正去发送消息的是sender线程

8.sender线程去缓存读取数据

9.然后封装成一个一个的网络请求ClientRequest,这些网络请求会发送给NetworkClient这个组件

10.真正发送数据的时候会将这些请求发送给Selector组件

11.Selector里面封装了很多kafkachannel(nio)

12.Selector执行网络请求,把消息发送到kafka集群

13.kafka集群会返回响应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值