一、KafKa producer工作流程
1.首先要构造一个ProducerRecord对象,该对象可以声明主题,分区partition, 键Key 和 值 value。主题和值是必须得声明的,但是分区和键可以不指定;
2.调用send进行消息发送;
3.以为消息要在网络上进行传输,所以必须进行序列化,序列化器的作用就把键和值序列化成字节数组;
4.接下来将数据传送到分区器,如果ProducerRecord指定了分区,那么分区器不再做任何的事情,直接将指定的分区返回,如果没有,则会,那分区器将会根据key来选择一个分区,选择好分区之后,生产者就知道往哪个分区发送消息了;
5.broker 成功接收到消息,表示发送消息成功,并且返回元数据(包括主题分区信息,以及记录在分区中的偏移量),发送失败,可以选择重新发送或者直接抛出异常;