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负责备份节点的数据同步)

二、框架

kafka(三):核心概念以及框架