1,kafka基本组成:
broker:一个kafka节点就是一个broker,多个broker组成集群,用于存储消息和处理消息。
topic:一个broker下有多个topic主题,每个消息都需要指定一个topic,用于消息归类。
producer:消息生产者,用于给broker发送消息。
consumer:消息消费者,用于读取broker的消息。
consumergroup:消息群组,每个消费者都需要指定消费组,一个消息可以发给多个consumergroup,但是同一个分区内的消息只能有一个分组内的一个消费者消费。
partition:物理概念,一个topic下有多个partition,多个partition分布在不同的broker下,每个partition内的消息是有序的。
2,kafka强依赖于zk。
3,消息模式:
单播消费:一条消息只能为一个消费者消费,消费者存在于一个消费者组内就可以实现,一个组内的消息只能由一个消费者消费。
多播消费: 一条消息可以给多个消费者消费,消费者存在于多个消费者组内就可以实现,多个组的消息可以由多个组的消费者消费。
4,分区,一个主题下可以有多个分区,一个分区保存数据是有序的,一个分区对应一个commit log文件,分区中数据通过offset对应。
kafka不会删除消息,不管消息有没有被消费,都会默认保留1周的时间,可以设置,一周后自动删除。
每个consumer都是