Kafka工作原理

一、Producer(生产者)工作原理

producer发送原理
说明:

  1. 生产者发送消息涉及两个线程 main线程、RecordAccumulator(缓存区)、sender线程:
    1.1 main线程
    1️⃣创建KafkaProducer对象。
    2️⃣拦截器(Interceptor)过滤处理:常常使用Flume的拦截器,对数据进行加工过滤处理(可选项)。
    3️⃣序列化器(Serializer):将数据序列化为方便网络传输的二进制形式。(必选项)
    4️⃣分区器(Partioner):指定生产者消息分区策略。
    1.2 sender线程
    7️⃣每一个broker节点,都会创建一个request队列,默认每个broker节点最多缓存5个请求。
数据有序性 说明
max.in.flight.requests.per.connection 允许最多没有返回 ack 的次数,默认为 5,开启幂等性要保证该值是 1-5 的数字。
enable.idempotence=true(默认) 幂等性

8️⃣ Selector,将数据发送给Kafka brokers集群。
9️⃣集群收到Producer数据后的应答(ACK):

应答级别ACK 说明
0 不需要等数据落盘应答。
1 Leader 收到数据后应答。
-1(all) Leader+和 isr 队列里面的所有节点收齐数据后应答。默认值是-1,-1 和all 是等价的。

🔟 当8️⃣ 发送失败

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值