文章目录
前言
相信现在的javer对于Kafka应该都很熟悉了,不管是八股文还是工作中使用。虽然Kafka server是scala写的,但是client是java写的,所以咱们理解client的代码还是比较容易的,今天先来基于源码解读下Kafka Producer的主体流程
一、Kafka Producer是什么?
这个应该不用过多介绍了吧,我们发送消息到MQ就是通过Kafka Producer来实现的。
二、主要组件
1.Kafka Producer
1.1 partitioner
partitioner的作用是用来对发送的消息进行partition选择的,譬如msg要发送某个topic,topic里有多个partition,需要选择发往哪个partition。
如果我们发送消息时设置了partition key,那么就按照partition key进行hash,然后选择发送的partition
如果没有设置partition key,那么就默认使用轮询的方式来选择partition
1.2 keySerializer
顾名思义,就是对key进行序列化的工具类。因为