Kafka生产者如何进行消息解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5302个文字,预计阅读时间需要22分钟。
一、消息发布增长1.1%,数据生产流程+数据生产流程图解:Producer创建时,会创建一个作为守护线程的Sender线程;Producer生产消息时,内部实际上是异步流程;生产出的消息先经过拦截器-序列化器-分区器
一、消息发送 1.1 数据生产流程数据生产流程图解:
- Producer创建时,会创建⼀个Sender线程并设置为守护线程
- ⽣产消息时,内部其实是异步流程;⽣产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)
- 批次发送的条件为:缓冲区数据⼤⼩达到
batch.size或者linger.ms达到上限,哪个先达到就算哪个 - 批次发送后,发往指定分区,然后落盘到 broker;如果⽣产者配置了
retrires参数⼤于0并且失败原因允许重试,那么客户端内部会对该消息进⾏重试 - 落盘到broker成功,返回⽣产元数据给⽣产者
- 元数据返回有两种⽅式:⼀种是通过阻塞直接返回,另⼀种是通过回调返回
先来看看我们一般在程序中是怎么配置的:
最常用的配置项:
本文共计5302个文字,预计阅读时间需要22分钟。
一、消息发布增长1.1%,数据生产流程+数据生产流程图解:Producer创建时,会创建一个作为守护线程的Sender线程;Producer生产消息时,内部实际上是异步流程;生产出的消息先经过拦截器-序列化器-分区器
一、消息发送 1.1 数据生产流程数据生产流程图解:
- Producer创建时,会创建⼀个Sender线程并设置为守护线程
- ⽣产消息时,内部其实是异步流程;⽣产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)
- 批次发送的条件为:缓冲区数据⼤⼩达到
batch.size或者linger.ms达到上限,哪个先达到就算哪个 - 批次发送后,发往指定分区,然后落盘到 broker;如果⽣产者配置了
retrires参数⼤于0并且失败原因允许重试,那么客户端内部会对该消息进⾏重试 - 落盘到broker成功,返回⽣产元数据给⽣产者
- 元数据返回有两种⽅式:⼀种是通过阻塞直接返回,另⼀种是通过回调返回
先来看看我们一般在程序中是怎么配置的:
最常用的配置项:

