生产者(Produce)

  1. 每一个消息是否都很重要,是否允许丢失一小部分消息。
    2. 是否可以接受偶尔出现消息重复?
    3. 是否有严格的延时和吞吐量要求?
    image.png

Kafka 消息的顺序保证
kafka 可以保证同一个分区里的消息是有序的。生产者每次尝试每一次发送一个数据给Broker

序列化器

分区

Kafka 的消息是一个个键值对,key有两个用途:可以作为消息的附加消息,也可以用来决定消息被写到主题的那个分区。

分区策略:

只有在不改变主题和分区数量的情况下,键与分区之间的映射才能保持不变。

消费者:

消费者群组

分区再均衡:

Kafka 集群

kafka 使用zookeeper 来维护集群成员的信息。

控制器(Controller)
控制器其实就是一个broker,只不过它除了具有一般Broker 的功能之外,还负责分区首领的选举。