• 【必会】Kafka基本概念(topic、partition、offset、broker、生产者、消费者、消费者组等)【知识点速记速查】


    目录

    kafka概念:【重点】【重点】【重点】【面试问过】

    Kafka Brokers(代理,代理节点,经纪人):

    topic:

    partition(分区):

    offset:

    Producer:

    Consumer:

    Consumer Group:

    Zookeeper:

    什么是消费者组?Kafka 中 Consumer Group 是什么概念?【重点】【面试问过】

    什么是Partition (分区):

    参考文献

    kafka概念:【重点】【重点】【重点】【面试问过】

    Kafka是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由LinkedIn公司开发,使用Scala语言编写,目前是Apache的开源项目;

    Kafka Brokers(代理,代理节点,经纪人)

    在管理主题中的消息存储时,我们使用 Kafka Brokers,Kafka服务器,负责消息存储和转发可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个 Kafka Cluster

    topic

    Producer 将消息发送到特定的主题,Consumer 通过订阅特定的 Topic(主题) 来消费消息;

    消息类别,Kafka按照topic来分类消息,Kafka主题是一堆或一组消息

    Kafka 将生产者发布的消息发送到 Topic(主题) 中,需要这些消息的消费者可以订阅这些 Topic(主题),如下图所示:

    partition(分区)

    • Partition 属于 Topic 的一部分。一个 Topic 可以有多个 Partition ,并且同一 Topic 下的 Partition 可以分布在不同的 Broker 上,这也就表明一个 Topic 可以横跨多个 Broker
    • Partition 属于 Topic 的一部分
    • 一个 Topic 可以有多个 Partition ,并且同一 Topic 下的 Partition 可以分布在不同的 Broker 上,这也就表明一个 Topic 可以横跨多个 Broker
    • 一个分区只能被同一个 Consumer Group 中的一个 Consumer 消费,分区内消费有序同一Consumer Group中的多个Consumer实例,不同时消费同一个partition,等效于队列模式
    • 再来看Kafka 的 Partition,Kafka 的消费模式和发送模式都是以 Partition 为分界。也就是说对于一个 Topic 的并发量限制在于有多少个 Partition, 就能支撑多少的并发
    • 一个 Topic 可以横跨多个 Broker
    • 一个分区只对应一个Broker,一个Broker可以管理多个分区
    • Kafka可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中
    • topic是逻辑的概念,partition是物理的概念
    • producer只需要关心消息发往哪个topic,而consumer只关心自己订阅哪个topic,并不关心每条消息存于整个集群的哪个broker
    • 对于partition,顺序读写磁盘数据,以时间复杂度O(1)方式提供消息持久化能力

    offset

    消息在日志中的位置,可以理解是消息在partition上的偏移量,也是代表该消息的唯一序号

    Producer

    消息生产者,在Kafka,生产者发布通信以及向Kafka主题发布消息;

    Consumer

    消息消费者,Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息;

    Consumer Group

    消费者分组,每个Consumer必须属于一个group

    Zookeeper

    保存着集群broker、topic、partition等meta数据;另外,还负责broker故障发现,partition leader选举,负载均衡等功能

    什么是消费者组?Kafka 中 Consumer Group 是什么概念?【重点】【面试问过】

    • 消费者组是Kafka独有的概念,如果面试官问这个,就说明他对此是有一定了解的。
    • 官网上的介绍言简意赅,即消费者组是Kafka提供的可扩展且具有容错性的消费者机制
    • 但实际上,消费者组(Consumer Group)其实包含两个概念:
    • 作为队列,消费者组允许你分割数据处理到一组进程集合上(即一个消费者组中可以包含多个消费者进程,他们共同消费该topic'的数据),这有助于你的消费能力的动态调整
    • 作为-订阅模型(publish-subscribe), Kafka 允许你将同一份消息广播到多个消费者组里,以此来丰富多种数据使用场景
    • 需要注意的是:在消费者组中,多个实例共同订阅若干个主题,实现共同消费。同一个组下的每个实例都配置有相同的组ID,被分配不同的订阅分区。当某个实例挂掉的时候,其他实例会自动地承担起它负责消费的分区。因此,消费者组在一定程度上也保证了消费者程序的高可用性
    • 注意:消费者组的题目,能够帮你在某种程度上掌控下面的面试方向;
    • 如果你擅长位移值原理(Offset)”,就不妨再提一下消费者组的位移提交机制;
    • 如果你擅长 Kafka Broker,可以提一下消费者组与Broker之间的交互;
    • 如果你擅长与消费者组完全不相关的 Producer ,那么就可以这么说︰“消费者组要消费的数据完全来自于Producer端生产的消息,我对Producer还是比较熟悉的”;
    • 总之,你总得对consumer group相关的方向有一定理解,然后才能像面试官表名你对某1块很理解;
    • 一个分区只能被同一个 Consumer Group 中的一个 Consumer 消费,分区内消费有序同一Consumer Group中的多个Consumer实例,不同时消费同一个partition,等效于队列模式

    什么是Partition (分区):

    • 可以理解为将标准 MQ 的 Queue 的消息进行拆分, 来实现高可用
    • Producer 发送的 Message, 根据 key 和 partition 数进行 hash, 然后进行投递
    • 一个消费者可消费多个分区,一个分区可被多个消费组消费,但同一消费组内仅能有一个消费者同时消费1个分区,等效于队列模式,分区内消费有序
    • Partition 属于 Topic 的一部分。一个 Topic 可以有多个 Partition ,并且同一 Topic 下的 Partition 可以分布在不同的 Broker 上,这也就表明一个 Topic 可以横跨多个 Broker一个分区只对应一个 Broker,一个 Broker 可以管理多个分区
    • 对于partition,顺序读写磁盘数据,以时间复杂度O(1)方式提供消息持久化能力
    • topic是逻辑的概念,partition是物理的概念
    • Kafka 的消费模式和发送模式都是以 Partition 为分界对于一个 Topic 的并发量限制在于有多少个 Partition, 就能支撑多少的并发
    • producer只需要关心消息发往哪个topic,而consumer只关心自己订阅哪个topic,并不关心每条消息存于整个集群的哪个broker
    • 一个分区只能被同一个 Consumer Group 中的一个 Consumer 消费,分区内消费有序同一Consumer Group中的多个Consumer实例,不同时消费同一个partition,等效于队列模式
    • 再来看Kafka 的 Partition,Kafka 的消费模式和发送模式都是以 Partition 为分界。也就是说对于一个 Topic 的并发量限制在于有多少个 Partition, 就能支撑多少的并发
    • 一个 Topic 可以横跨多个 Broker
    • 一个分区只对应一个Broker,一个Broker可以管理多个分区
    • kafka可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中

    参考文献

    • JavaGuide
    • 马士兵
    • 大数据架构网
  • 相关阅读:
    查看Java程序的进程编号
    安全狗受邀亮相第二届工控中国大会
    Unity/C# 舍入的五种写法
    特征增强自蒸馏卷积神经网络
    人工神经网络算法的应用,人工神经网络是算法吗
    React事件机制
    Lua,ILRuntime, HybridCLR(wolong)/huatuo热更新对比分析
    python如何筛选具有多列值相同的两个dataframe
    基于BP神经网络的手写体数字识别matlab仿真实现
    回看路由守卫
  • 原文地址:https://blog.csdn.net/jiayoudangdang/article/details/125811429