kafka(三):核心概念以及框架
一、核心概念
1.Message:
数据.传递的数据对象,主要由四部分构成:offset(偏移量)、key、value、timestamp(插入时间)。
2.Broker:
一般情况一台服务器一个broker,但是可以部署多个,反应到具体的进程就是Kafka进程
3.Topic:
是Kafka中一组消息的一个整体概念,Produce将消息写入到对应的Topic,Consumer从对应的Topic读取消息
4.Partition:
一个Topic包含多个分区,Produce发送到Topic的数据根据key的不同发送到不同的partition中(默认情况是hash分的)。其中: 一个分区中的数据有两个特性:
(1)有序:按照进入kafka的时间排序
(2)数据不可变:进入到kafka集群的数据不可进行变动
5.Producer:数据生产者
6.Consumer:数据消费者
7.ConsumerGroup:
多个Consumer共同进行数据消费,然后多个Consumer之间形成负载均衡的一个特性;每个consumer都属于一个特定的group组,一个group组可以包含多个consumer,但一个组中只会有一个consumer消费数据。其中:
(1)一个ConsumerGroup中如果Consumer的数量和消费的Topic的Partition的数量一样多,那么每个Consumer消费一个Partition的数据
(2)如果数据超过Partition的数量,那么有部分consumer处于不消费数据的状态
(3)如过partition大于消费者的数量,那么一个消费者就会消费多个partition
8.Zookeeper
职责:负责Kafka元数据管理以及Consumer相关数据管理
(1)Kafka元数据管理: 比如leader在哪里,broker块在哪里,每个分区数据插入了多少,插入到那个偏移量数据?
(2)Consumer相关数据管理: Consumer消费哪个topic,每个分区都消费了多少?
(3)负责针对每一个partition选举leader,比如kafka有10个topic,每个topic又有3个partition,那么就会有30个leader。(而leader负责备份节点的数据同步)
二、框架