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

二、框架

三、关键概念

1.offset偏移量

    (1)在每个Topic的每个Partition中,存储数据的时候,会给每一条数据存储一个当前消息在当前Partition中的偏移量(该值从0开始递增,类型为Long);这里的偏移量的含义是指当前消息在当前分区中是第几条消息;offset是由kafka的broker服务产生的,会随着数据存储到磁盘中,每个分区都会维护自己的offset偏移量序列,分区与分区之间的offset偏移量没有任何关系   
    (2)消费者在消费Topic对应分区的时候,每个消费者会在zk&kafka中保存该对应topic的消费数据量(eg: zk中看到的consumer offset偏移量的值表示的是该消费者在对应的分区上消费了多少条数据)  

2.Consumer Group

    (1)当多个Consumer的group.id参数值一致的情况下,这些consumer属于同一组,同一组的consumer共享一个consumer offset偏移量信息
    (2)一个Consumer Group消费某一个topic数据的时候,该Topic的每个分区只能被Consumer Group中的一个consumer消费
    (3)一个分区的数据可以被多个Consumer Group消费
    (4)在Consumer Group中,
            (a)如果Consumer的数量小于需要消费的分区数量,那么一个consumer可能会消费多个分区的数据;
            (b)如果大于分区数量,那么可能存在consumer不消费数据的情况;
            (c)如果相等,那么可能存在一个consumer消费一个分区的数据。
            强调:一个Consumer Group中,一个Topic的分区的数据只能被一个Consumer消费;一个Consumer可以消费多个分区的数据


3.push和poll的区别:

    push指的是主动将数据传递给对方,不管对方是否能够进行处理
    poll指的是根据自身的一个数据处理能力,主动的到数据产生方获取数据
和flume的区别:flume都是push的方式,kafka有两种可选择的
 

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/83117752