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 消费者端实现高可用的重要手段。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【sqli靶场】第二关和第三关通关思路

目录 前言 一、sqli靶场第二关 1.1 判断注入类型 1.2 判断数据表中的列数 1.3 使用union联合查询 1.4 使用group_concat()函数 1.5 爆出users表中的列名 1.6 爆出users表中的数据 二、sqli靶场第三关 2.1 判断注入类型 2.2 观察报错 2.3 判断数据表中的列数 2.4 使用union联合…

视频目标检测 yolov

目录 yolov相关介绍 预训练是检测动物世界的动物的,1060显卡单帧需要300毫秒 yolov相关介绍 论文地址: https://arxiv.org/pdf/2208.09686.pdf 代码地址: https://github.com/YuHengsss/YOLOV ModelsizemAP50valSpeed 2080Ti(batch size1)…

BGD 实战

梯度下降方法 2.1、三种梯度下降不同 梯度下降分三类:批量梯度下降BGD(Batch Gradient Descent)、小批量梯度下降MBGD(Mini-Batch Gradient Descent)、随机梯度下降SGD(Stochastic Gradient Descent&…

ROB端口需求

对于一个 4-way 的超标量处理器来说,在重排序缓存(ROB)中每周期可以退休的指令个数应该是不小于四条的;如图给出的ROB,在那些最旧的指令中,有三条指令都已经变为了complete状态,那么在一个周期内就可以将这三条指令都退休。 要实现…

Vue路由跳转重定向动态路由VueCli

Vue路由跳转&重定向&动态路由&VueCli 一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! …

抖店一件代发怎么做?保姆级运营教程!

我是电商珠珠 抖店是抖音发展的电商平台,一些没有电商经验的新手,不想囤货,担心卖不出去。 听说可以一件代发,但却不知道怎么做。 今天,我就来详细的跟大家讲一下。 一、选品上架 在选品的时候可以参考后台的电商…

GZ029 智能电子产品设计与开发赛题第5套

2023年全国职业院校技能大赛高职组 “GZ029智能电子产品设计与开发”赛项赛卷五 题目:模拟工业传送带物品检测系统的设计与开发 1 竞赛任务 在智能电视机上播放工业传送带传输物品视频,模拟工业传送带物品检测系统(以下简称物品检测系统&…

wpf TelerikUI使用DragDropManager

首先,我先创建事务对象ApplicationInfo,当暴露出一对属性当例子集合对于构成ListBoxes。这个类在例子中显示如下代码: public class ApplicationInfo { public Double Price { get; set; } public String IconPath { get; set; } public …

Nature 子刊| 单细胞转录组揭示从猴到人的进化过程

期刊:Nature Ecology & Evolution IF:16.8 发表时间:2023 DOI号:10.1038/s41559-023-02186-7 研究背景 据推测,人类认知功能的增强是由于皮质扩张和细胞多样性增加所致。然而,推动这些表型创新的机…

产品入门第一讲:Axure的安装以及基本使用

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​ 🌟在这里,我要推荐给大家我的专栏《Axure》。🎯🎯 🚀无论你是编程小白,还是有…

【开源】基于Vue.js的就医保险管理系统

文末获取源码,项目编号: S 085 。 \color{red}{文末获取源码,项目编号:S085。} 文末获取源码,项目编号:S085。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预…

竞赛保研 LSTM的预测算法 - 股票预测 天气预测 房价预测

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

yolov8学习

1.yolov8代码结构 1.ultralytics文件夹 (1)assets 待评估的图片 (2)cfg datasets:不同数据集对应yaml文件 models:不同模型对应的yaml文件 (3)data 用于图像预处理的py代码

【安卓】安卓xTS之Media模块 学习笔记(3) VTS测试

因为本文内容较多,将目录放在这里,便于检索。 文章目录 文章系列1. 背景2. 参考文档3. 测试步骤3.1 VTS测试包获取3.1.1 自行编译 3.2 VTS测试包文件结构3.3 测试命令3.3.1 常见命令3.3.2 一些常见的option: 4. 测试结果说明4.1 结果result4…

【强化学习-读书笔记】多臂赌博机 Multi-armed bandit

参考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. Barto强化学习与监督学习 强化学习与其他机器学习方法最大的不同,就在于前者的训练信号是用来评估(而不是指导)给定动作的好坏的。 …

跨国企业在跨境数据传输时需要注意的几点

对于跨国企业而言,跨境数据传输是一个极为关键的组成部分。这不仅涉及到数据的安全性、合规性和效率,还直接关系到企业的竞争力和未来发展前景。因此,在进行跨境数据传输时,企业需要特别关注以下几个关键点,并采取相应…

设计模式-组合模式

设计模式专栏 模式介绍模式特点应用场景组合模式和装饰者模式的区别代码示例Java实现组合模式python实现组合模式 组合模式在spring中的应用 模式介绍 组合模式是一种结构型设计模式,它针对由多个节点对象(部分)组成的树形结构的对象&#x…

MES管理系统的应用场景都包括哪些

在当今高度信息化的时代,企业生产管理面临着越来越多的挑战。如何实现生产过程的数字化、智能化和优化,提高生产效率和产品质量,是许多制造企业亟待解决的问题。作为一种面向车间现场生产制造过程的数字化管理工具,MES管理系统在企…

最大公因数,最小公倍数详解

前言 对于初学编程的小伙伴们肯定经常遇见此类问题,而且为之头疼,今天我来给大家分享一下,最大公因数和最小公倍数的求法。让我们开始吧! 文章目录 1,最大公因数法1法2法3 2,最小公倍数3,尾声 …

Linux安装Nginx并部署Vue项目

今天部署了一个Vue项目到阿里云的云服务器上,现记录该过程。 1. 修改Vue项目配置 我们去项目中发送axios请求的文件里更改一下后端的接口路由: 2. 执行命令打包 npm run build ### 或者 yarn build 打包成功之后,我们会看到一个dist包&a…