深入学习Kafka之概念解析

这篇具有很好参考价值的文章主要介绍了深入学习Kafka之概念解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. Kafka是什么

Kafka是一个开源的分布式流处理平台和消息队列系统。

Kafka是一个值得深入学习的开源中间件,其中涉及的概念有很多,今天就来梳理一下,这些概念到底都是什么。

1. 基本概念

1.1 生产者(Producer)

Producers are those client applications that publish (write) events to Kafka

生产者就是那些发布/写事件到Kafka的客户端应用。

1.2 消费者(Consumer)

consumers are those that subscribe to (read and process) these events.

消费者是那些订阅(读和处理)这些事件的应用。

1.3 服务代理节点(Broker)

Kafka is run as a cluster of one or more servers that can span multiple datacenters or cloud regions. Some of these servers form the storage layer, called the brokers.

Kafka以一个或多个服务端组成的集群方式运行,这样可以使其分成多个数据中心或者云区域。一些来自存储层的server被称之为broker。

对于 Kafka 而言, Broker 可以简单地看作一个独立的 Kafka 服务节点或 Kafka服务实例。大多数情况下也可以将 Broker看作一台 Kafka服务器,前提是这 台服务器上只部署了一个 Kafka 实例。一个或多个 Broker 组成了 一个 Kafka 集群 。一般而言, 我们更习惯使用首字母小写的 broker 来表示服务代理节点 。

1.4 控制器(Controller)

在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器( Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的 leader 副本出现故 障时,由控制器负责为该分区选举新的 leader副本。当检测到某个分区的 ISR集合发生变化时, 由控制器负责通知所有 broker更新其元数据信息。

具备控制器身份的broker需要比其他普通的broker多一份职责:

    1. 监听分区相关变化。
      • a. 分区重新分配。(reassignment)
      • b. ISR集合变更。
      • c. 副本选举。
    1. 监听主题相关变化。
      • a.topic的增加、删除等。
    1. 监听broker相关变化。
      • a. broker的增加与减少。
    1. 启动并管理分区状态机和副本状态机。
    1. 更新元数据信息。

1.5 主题 Topic

在Kafka中,Topic(主题)是消息发布和订阅的基本单位。它是一个逻辑上的概念,用于组织和分类消息流。一个Topic可以被看作是一个具有相同特性的消息类别或主题。

每个Topic都有一个唯一的名称,用于在Kafka集群中进行标识和访问。生产者(Producers)将消息发布到特定的Topic,而消费者(Consumers)则订阅感兴趣的Topic以消费其中的消息。

Kafka的Topic可以被分成多个分区(Partitions),每个分区都是有序且持久化的消息日志。分区是Topic在物理上的分割,用于实现数据的横向扩展和并行处理。每个分区可以在不同的服务器上进行复制,以提供数据冗余和故障恢复机制。

1.6 分区(Partitions)

在Kafka中,分区(Partitions)是Topic的物理单元,用于水平划分和存储数据。每个Topic可以被分成一个或多个分区,每个分区都是一个有序、不可变的消息日志。
分区leader的选举由控制器负责具体实施。

1.7 副本(replica)

在Kafka中,每个分区都可以配置多个分区副本(Partition Replicas)。分区副本是分布在不同节点上的数据备份,用于提供数据冗余和故障容错。

以下是关于Kafka分区副本的一些关键概念和特性:

  • 1.复制机制:每个分区可以配置一个或多个副本。副本之间通过复制机制保持数据的一致性。当生产者发送消息时,它们将被写入主副本(Leader Replica),而主副本会将消息复制到其他副本(Follower Replicas)。
  • 2.主副本和从副本:每个分区只有一个主副本,它负责处理所有的读写请求。其他副本是从副本,它们与主副本保持同步,并提供备份数据以供故障恢复。
  • 3.数据复制和同步:Kafka使用复制日志(Replication Log)的方式进行数据复制和同步。主副本将消息写入日志,并将日志传输给从副本,从副本按顺序应用这些消息以保持数据的一致性。
  • 4.容错和可用性:分区副本提供了故障容错和数据冗余的机制。如果主副本发生故障,Kafka会自动选择一个从副本作为新的主副本,以确保分区的可用性和持续的数据写入。
  • 5.负载均衡:分区副本的配置可以实现负载均衡。Kafka会将分区副本尽可能分布在不同的节点上,以平衡数据的读写负载和提供更好的性能。
  • 6.ISR(In-Sync Replicas):ISR是指与主副本保持同步的副本集合。只有在ISR中的副本才能成为新的主副本。如果副本与主副本的同步进度滞后,它将被移出ISR,直到追赶上同步进度。

分区副本在Kafka中是实现高可用性、数据冗余和故障容错的关键机制。它们提供了数据的持久性和可用性保证,以及在节点故障时的自动故障转移。

1.8 Consumer Group(消费者组)

消费者可以组成一个消费者组。每个消费者组可以订阅一个或多个主题,并共享消息的处理负载。Kafka 会将消息广播给消费者组中的所有消费者。

1.9 Offset(偏移量)

偏移量是消息在分区中的唯一标识符。消费者可以通过指定偏移量来读取分区中的消息。Kafka 会跟踪每个消费者在每个分区中的偏移量,并确保消费者可以继续从上次离开的位置读取消息。

1.10 Rebalance

Kafka 的 Rebalance 是指在消费者组中增加或减少消费者时,自动重新分配分区的过程。当消费者加入或离开消费者组时,Kafka 会自动进行 Rebalance 操作,以确保每个消费者在消费者组中处理尽可能相等的负载。
三个触发Rebalance的情况:

  • 1.消费者组成熟数量发生变化
  • 2.订阅的主题数量发生变化
  • 3.订阅的主题的分区数量发生变化

1.11 Coordinator

新版的消费者客户端对此进行了重新设计 ,将全部消费组分成多个子集 , 每个消费组的子 集在服务端对应一个 GroupCoordinator 对其进行管理,GroupCoordinator是Kafka服务端中用于管理消费组的组件
而消费者客户端中的 ConsumerCoordinator组件负责与 GroupCoordinator进行交互 。

1.12 LEO(Log end offset)

Leo 是指副本日志的当前末尾偏移量。它表示副本已经成功复制的消息的最高偏移量。所有新的消息都将追加到 Leo 之后。Leo 用于确定要从哪个偏移量开始复制消息。

1.13 HW(High Watermark)

HW 是指副本的高水位标记。它表示副本已经成功应用到消费者的最高偏移量。也就是说,消费者可以确保已经消费并处理了 HW 之前的所有消息。HW 用于跟踪消费者的进度,以及确定哪些消息可以被安全地删除。文章来源地址https://www.toymoban.com/news/detail-836353.html

到了这里,关于深入学习Kafka之概念解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka 基础概念学习

    项目 Value Broker Kafka服务端(即部署了Kafka的机器) Producer 生产者写数据到主副本 Consumer 消费者从主副本读数据 Consumer Group 消费者组,同一个组下可以订阅多个Topic,每个Topic分区不允许重复消费;多个不同组可以消费同一个Topic的同一个分区 Broker Kafka服务端一个实例(一台机器

    2024年02月13日
    浏览(27)
  • 解析Apache Kafka:在大数据体系中的基本概念和核心组件

    关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深度剖析:计算机集群在大数据体系中的关键角色和技术要点 关联阅读博客文章:深入理解HDFS工作原理:大数据存储和

    2024年04月10日
    浏览(49)
  • kafka学习-概念与简单实战

    目录 1、核心概念 消息和批次 Topic和Partition Replicas Offset broker和集群 生产者和消费者 2、开发实战 2.1、消息发送 介绍 代码实现 2.2、消息消费 介绍 代码实现 2.3、SpringBoot Kafka pom application.yaml KafkaConfig producer consumer         kafka的基本数据单元,由字节数组组成。可以理解

    2024年02月09日
    浏览(34)
  • kafka学习-基本概念与简单实战

    目录 1、核心概念 消息和批次 Topic和Partition Replicas Offset broker和集群 生产者和消费者 2、开发实战 2.1、消息发送 介绍 代码实现 2.2、消息消费 介绍 代码实现 2.3、SpringBoot Kafka pom application.yaml KafkaConfig producer consumer         kafka的基本数据单元,由字节数组组成。可以理解

    2024年02月09日
    浏览(32)
  • Kafka指定分区消费及consumer-id,client-id相关概念解析

    xxxx系列(1)― xxxx系列(2)― xxxxx系列(3)― 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 在最近使用Kafka过程中,发现使用@KafkaListener指定分区消费时(指定了所有分区),如果服务是多节点,会出现重复消费的现象,即两个服务节点中的消费者均会消

    2024年02月13日
    浏览(29)
  • 深入剖析:Kafka流数据处理引擎的核心面试问题解析75问(5.7万字参考答案)

           Kafka 是一款开源的分布式流处理平台,被广泛应用于构建实时数据管道、日志聚合、事件驱动的架构等场景。本文将深入探究 Kafka 的基本原理、特点以及其在实际应用中的价值和作用。      Kafka 的基本原理是建立在发布-订阅模式之上的。生产者将消息发布到主题(

    2024年01月23日
    浏览(37)
  • kafka--kafka的基本概念-副本概念replica

    Broker 表示实际的物理机器节点 Broker1中的绿色P1表示主分片Broker2中的蓝色P1表示副本分片,其余类似,就是主从的概念,如果一个Broker挂掉了,还有其它的节点来保证数据的完整性 P可以看做分区 同一时间点,绿色P1 和紫色P1 不会完全一致,存在一个同步的过程 绿色部分处理

    2024年02月12日
    浏览(32)
  • 【Kafka】Kafka基础概念笔记

    Kafka作为消息队列,有两种模式: 点对点模式 发布/订阅模式 1.1 点对点模式 特点: 消费者主动拉取数据, 消息收到后清除消息 1.2 发布/订阅模式 可以有多个topic主题(浏览、点赞、收藏、评论等) 消费者消费数据之后, 不删除数据 每个消费者相互独立,都可以消费到数据

    2024年02月13日
    浏览(34)
  • 【Kafka】Kafka介绍、架构和概念

    Kafka是是一个优秀的分布式消息中间件,关于常用的消息中间件对比可参考文章:消息中间件概述。 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、

    2024年01月22日
    浏览(43)
  • kafka--kafka基础概念-ISR详解

    主要是讲 主 往 从同步中的问题 当绿色P1接收到写入的数据,要同步到紫色的P1S1和P1S2 如何保证一致性呢? 使用In Sync Replicas 也就是ISR概念 为什么不一致的? 因为P1S1同步数据 可能花费 50ms P1S2可能花费60ms 同步完的进入ISR集合, 同步时间是可以设置规定时间的(容忍时间)

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包