1、生产者向kafka发送消息的工作流程
(1)获取某个主题的leader分区的列表(原因:一个主题有0~N个分区,一个分区有N个foller分区,foller分区数量小于broker数量,并且只有leader分区可以执行写操作,foller分区主动复制)。
(2)向leader分区写入数据。
(3)同时通过ack机制通知生产者,kafka是否已经获取并保存了消息。ack机制有三个参数:0,生产者不用等卡夫卡获取分区写入成功通知,直接发送下一条。1,如果leader分区写入成功就告诉生产者消息写入成功。all,如果leader分区和所有follwer分区都写入成功,通知生产者,消息接收成功,让它写下一条。
2、杂项
(1)同一个topic下的分区之间数据是不同的,然后每个分区有多个副本,每个副本在不同的服务器上。