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