- new KafkaProducer()后创建一个后台线程KafkaThread扫描RecordAccumulator中是否有消息;
- 调用KafkaProducer.send()发送消息,实际上只是把消息保存到RecordAccumulator中;
- 后台线程KafkaThread扫描到RecordAccumulator中有消息后,将消息发送到kafka集群;
- 如果发送成功,那么返回成功;
- 如果发送失败,那么判断是否允许重试。如果不允许重试,那么返回失败的结果;如果允许重试,把消息再保存到RecordAccumulator中,等待后台线程KafkaThread扫描再次发送(还是发送到原来的分区);
kafka发送失重试机制解读
最新推荐文章于 2024-09-10 06:31:10 发布