聊聊Kafka(二)Kafka生产者

本文深入探讨Kafka生产者的工作原理,包括数据生产流程:Producer创建Sender线程,消息经过拦截器、序列化器和分区器进入缓冲区,批次发送到broker。重点阐述了必要的配置参数如序列化器、分区器和拦截器,以及自定义拦截器的实现。还分析了Sender线程的角色,如何选择负载最小的Node发送消息,最后补充了生产者参数配置的相关知识。
摘要由CSDN通过智能技术生成

生产者

消息发送

数据生产流程解析

在这里插入图片描述

  1. Producer创建时,会创建一个Sender线程并设置为守护线程。
  2. 生产消息时,内部其实是异步流程;生产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)。
  3. 批次发送的条件为:缓冲区数据大小达到batch.size或者linger.ms达到上限,哪个先达到就算哪个。
  4. 批次发送后,发往指定分区,然后落盘到broker;如果生产者配置了retrires参数大于0并且失败原因允许重试,那么客户端内部会对该消息进行重试。
  5. 落盘到broker成功,返回生产元数据给生产者。
  6. 元数据返回有两种方式:一种是通过阻塞直接返回,另一种是通过回调返回。

必要参数配置

broker配置
配置参数:
在这里插入图片描述
序列化器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值