2、快速搞定Kafka术语

快速搞定Kafka术语

  • Kafka 服务端
    • 3层消息架构
  • Kafka 客户端
  • Broker 如何持久化数据
  • 小结

Kafka 服务端

3层消息架构

  • 第 1 层是主题层,每个主题可以配置 M 个分区,而每个分区又可以配置 N 个副本。
  • 第 2 层是分区层,每个分区的 N 个副本中只能有一个充当领导者角色,对外提供服务;其他 N-1 个副本是追随者副本,只是提供数据冗余之用。
  • 第 3 层是消息层,分区中包含若干条消息,消息位移:在分区中每条消息都有自己的位移,从 0 开始,依次递增。
    客户端程序只能与分区的领导者副本进行交互。

Kafka 客户端

  • 消费者组,指的是多个消费者实例共同组成一个组来消费一组主题。这组主题中的每个分区都只会被组内的一个消费者实例消费,其他消费者实例不能消费它。为什么要引入消费者组呢?主要是为了提升消费者端的吞吐量。多个消费者实例同时消费,加速整个消费端的吞吐量(TPS)。
  • 消费者位移,每个消费者在消费消息的过程中必然需要有个字段记录它当前消费到了分区的哪个位置上,这个字段就是消费者位移(Consumer Offset)。
    要注意的是,消费者位移和上面的消息位移不是一个概念:
    消息位移是不变的,表征的是分区内的消息位置,即一旦消息被成功写入到一个分区上,它的位移值就是固定的了。
    消费者位是变化的,表征的是消费者消费进度,即消费者消费到了哪个分区的哪个位置上。每个消费者有着自己的消费者位移。
  • 重平衡,消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance是Kafka消费者端实现高可用的重要手段。

Broker 如何持久化数据

  • 保存:Kafka使用消息日志(Log)来保存数据,一个日志就是磁盘上一个只能追加写(Append-only)消息的物理文件。
  • 删除:通过日志段(Log Segment)机制。在Kafka底层,一个日志又进一步细分成多个日志段,消息被追加写到当前最新的日志段中,当写满了一个日志段后,Kafka会自动切分出一个新的日志段,并将老的日志段封存起来。Kafka在后台还有定时任务会定期地检查老的日志段是否能够被删除,从而实现回收磁盘空间的目的。

小结

代理:Broker。Broker 指 Kafka 的进程实例,多个 Broker 组成一个 Kafka 集群。目的是提高可用性
消息:Record。Kafka是消息引擎,这里的消息就是指Kafka处理的主要对象。
主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区,分区编号从0开始。可理解是:为了提高服务端扩展性,将 1 个主题拆成多个分区。
消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
副本:Replica。Kafka中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。可理解是:为了提高可用性,对每条消息进行冗余备份。
生产者:Producer。向主题发布新消息的应用程序。
消费者:Consumer。从主题订阅新消息的应用程序。
消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。可理解是:为了实现共同订阅,所以实现了多组。
重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

图例:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265790.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

说一些你不知道的知识——接口测试的测试要点

接口测试的测试要点,你知道都有哪些吗? 接口测试是软件测试中的重要组成部分,它的目的是评估接口的质量和可靠性,以保证系统的正常运行。在进行接口测试时,必须要考虑到以下几个方面: 测试用例的编写 测试…

【Linux】进程通信之命名管道mkfifo

1.认识命名管道 匿名管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。命名管道是一种特殊类型的文件 2.在命…

智能工厂的信息化建设

为大家介绍一个通过数字孪生技术建设智能工厂信息化建设的案例,看看我们是如何通过易知微EasyV数字孪生可视化大屏来为企业进行数字化转型。 易知微-EasyV数字孪生|智慧城市园区工厂水利双碳|三维地图数据可视化大屏​easyv.cloud/​编辑https://link.zhihu.com/?…

LAMP 搭建

目录 LAMP LAMP组成及作用 LAMP搭建实验举例,优先将防火墙和安全终端关闭,在一台虚拟机上操作 搭建 apache httpd服务 搭建 mysql服务 搭建 php服务 安装论坛 LAMP —— LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一…

2013年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2013 级考研管理类联考数学真题一、问题求解(本大题共 15 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。真题(2013-01&…

排序与算法--冒泡排序

1.原理 比较两个相邻的元素,将较大的值交换到右边 2.举例:2 8 7 5 9 4 3 第一趟: 第一次:比较第一个和第二个:2 8 ,不需要交换 第二次:比较 8 7,将8和7进行交换:2 7 …

电脑出现错误0x80004005怎么解决,解决0x80004005的问题

当电脑出现0x80004005错误时,通常是由于系统或应用程序之间的通信问题或文件系统损坏引起的。该错误代码表示未指定错误,在Windows系统中较为常见。 一.解决0x80004005错误的步骤 重新启动电脑 有时候,错误只是一个暂时的问题,重…

苍穹外卖+git开源

搁置了很久重新开始学 为了学习方便,苍穹外卖的前后端代码已放至git开源。 源代码-->sky-take-out: 苍穹外卖 git学习-->Git基础使用-CSDN博客 后端接口员工管理和分类管理模块 新增员工 添加员工表单分析,添加的表单账号、手机号、身…

Vue 核心 数据监听 computed | watch

Vue 核心 数据监听 computed | watch 一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 (演示&…

玩法题材创新的跑酷游戏,广告变现不止带来收益 | TopOn变现干货

跑酷游戏是一类永不落伍的游戏。从远古的红白机到现代的PC、手机,经典作品层出不穷,而提起手机端的跑酷游戏,相信大部分玩家脑海里的第一印象便是《神庙逃亡》和《地铁跑酷》这两款经典游戏,在上蹿下跳、左右挪移间躲避障碍&#…

记一次测试环境git翻车经历

本来想拉一个功能分支进行新的功能开发,合并代码发现没有冲突居然有文件被修改了,贸然选择最近的一次回滚提交,没想到不假思索的push -f 导致一部分dev主干的代码不见了。 事故记录 开发分支origin/dev,功能分支file 合并之后发…

世达教育讲师荣获“年度优秀授课讲师”

世达教育作为受邀嘉宾参加了PeopleCert合作伙伴年会。世达教育优秀讲师Jacky李,荣获年度优秀授课讲师,这不仅仅是对讲师的认可,更是对世达教育的鼓励。 (寇经理与PeopleCert产品副总裁Markus Bause合影) (年…