。Kafka集群是必须要有ZooKeeper的
。注意:每一个Kafka的节点都需要修改broker.id(每个节点的标识,不能重复)
一点疑问 为什么Kafka集群要有ZooKeeper?
ZK用来管理和协调broker,并且存储了Kafka的元数据
ZooKeeper负责日常管理协调工作,类似与项目经理,Kafka负责具体干活,类似于项目组成员。
Kafka重要概念
broker 经纪人
个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错
broker是无状态(Sateless)的,它们是通过ZooKeeper来维护集群状态
一个Kafka的broker每秒可以处理数十万次读写,每个broker都可以处理TB消息而不影响性能
度了一下broker英文单词是经纪人的意思。
producer:生产者
生产消息
consumer:消费者
消费消息
topic:主题
一个Kafka集群中,可以包含多个topic。一个topic可以包含多个分区
是一个逻辑结构,生产、消费消息都需要指定topic
partition:分区
Kafka集群的分布式就是由分区来实现的。一个topic中的消息可以分布在topic中的不同partition中
1000条消息,1-500放在Partition1,500-1000放在Partition2里面
replica:副本
实现Kafkaf集群的容错,实现partition的容错。一个topic至少应该包含大于1个的副本,是partition分区的副本吗?
consumer group:消费者组,
一个消费者组中的消费者可以共同消费topic中的分区数据。每一个消费者组都一个唯一的名字。配置group.id一样的消费者是属于同一个组中
offset:偏移量
相对消费者、partition来说,可以通过offset来拉取数据
消费者组
- 一个消费者组中可以包含多个消费者,共同来消费topic中的数据
- 一个topic中如果只有一个分区,那么这个分区只能被某个组中的一个消费者消费
- 有多少个分区,那么就可以被同一个组内的多少个消费者消费