Kafka 入门到起飞 - 核心概念(术语解释)

news2024/11/25 10:30:05

在这里插入图片描述

在kafka之旅,我们会大量讨论Kafka中的术语,那么就让我们先来了解一下这些核心概念

消息(Message):
kafka的数据单元称为消息,相当于DB里的一行数据一条记录
消息由字节数组组成
批次:

生产者组一批数据再向kafka推送,批次大小可以通过参数配置

把消息分成批次传输(消息属于同一个主题,同一个分区),减少网络开销
批次越大,单位时间内处理的消息越多,单个消息传输时间越长
批次数据进行压缩,吞吐量可达千万条消息每秒(rabblitMQ 只能达到万级消息/s,延迟低,微妙级)
producer在向topic发送消息前,会对这一批次消息进行压缩处理
压缩需要CPU进行计算,对CPU性能有要求

压缩带来的磁盘空间和带宽的节省,远大于CPU开销的代价,这样的压缩是值得的

模式:
数据序列化、反序列化方式

主题(Topic):
消息通过主题进行分类
生产者向指定Topic发送数据,消费者订阅该Topic消费数据

逻辑概念,相当于数据库里的表或文件系统的文件夹

分区(Partition):

topic物理上的分组,就是把一个主题下的消息分散存储
通常一个topic下的分区分散在kafka集群的不同实例(broker)上,producer向一个topic发送消息会发送给不同分区中,这样消息就可以实现并行发送与处理,增加吞吐量
当一台机器能力不足时,可以通过添加机器横向扩展broker,在新的机器上创建分区,这样就可以实现无限水平扩展

一个主题可以有多个分区,可以横向扩展
Kafka 通过分区来实现数据冗余和伸缩性
消息顺序写入分区,每个分区时一个有序队列,kafka不保证跨分区消息有序
在这里插入图片描述
片段(Segment): 每个分区物理上由多个segment组成,实际存储消息的物理文件,一个片段默认大小为1GB,可以通过配置文件修改,当消息追加到1GB大小后,会创建新的segment文件

一个segment包含3个文件,命名规则:每个segment文件最后一条消息offset的值,没有数字用0补充
00000000000000000000.index 索引文件
00000000000000000000.log 数据文件,实际存储消息数据的文件,二进制格式
00000000000000000000.timeindex 基于消息日期的索引文件 (根据日期或者时间查找消息)

消费者组:
消费者组保证每一个分区消息只被消费者组内一个消费者消费
在这里插入图片描述
broker:
每个broker就是kafka集群一个实例,一个节点,一台独立的服务器
broker 接收来自producer的message,为message设置offset,提交消息到磁盘保存
broker为consumer提供服务,对consumer读取分区消息的请求做出响应
单个broker可以处理多个分区、每秒百万级吞吐量
集群:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频seo矩阵源码开发与实践分享

在短视频矩阵系统源码开发中,需要注意以下几个细节: 1. 确定系统的功能需求:在开发短视频矩阵系统源码时,必须先明确系统的功能需求,包括用户的基本操作、系统数据的生成和处理等。 2. 定义数据库结构:短…

提高开发效率!5个对开发者有用的Kotlin扩展函数

本文已同步发表于我的微信公众号,搜索 代码说 即可关注,欢迎与我沟通交流。 文章目录 runCatching代替try catchView的可见性dp、sp、px之间相互转换by lazy 替代findViewByIdToast、Log Kotlin 中扩展函数是一种允许在已有的类中添加新函数,…

Day52| 300.最长递增子序列 、 674. 最长连续递增序列 、718. 最长重复子数组

300.最长递增子序列 1.题目: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 …

从编写metadata.yaml到测试processor文件成功

检查模型和客户端( Excel 原型图)字段是否对应 修改 applications\commands\metadata\cai_liao_ she_bei_metadata.yaml 文件 wen_jian_db_conf 下的 all 下的 content_field_name 选项,要根据 model 中写的文件路径找到对应的 model&#x…

论文阅读—2023.7.13:遥感图像语义分割空间全局上下文信息网络(主要为unet网络以及改unet)附加个人理解与代码解析

前期看的文章大部分都是深度学习原理含量多一点,一直在纠结怎么改模型,论文看的很吃力,看一篇忘一篇,总感觉摸不到方向。想到自己是遥感专业,所以还是回归遥感影像去谈深度学习,回归问题,再想着…

resultType和parameterType的基本使用和区别

我们在使用Mybatis的过程中不难发现Mapper文件中的select,insert,update,delect操作中都有一个parameterType 或 resultType属性。 resultType:返回值类型,类型即为对象类型,返回结果字段与对象属性匹配映射,类型中的属性名要与查…

数学建模-假设检验

原假设,备择假设P值,显著性水平单侧建议,双侧检验

IPUU的小工具拍了拍你(上)

IPUU是埃文科技旗下的综合性IP查询网站,提供多维度的IP数据信息。通过在线查询,用户可以获取目标IP地址的详尽信息,包括位置属性、网络属性、风险属性以及业务属性等,同时还可以查询域名信息。无论您是需要查看某个IP地址归属地&a…

VBA技术资料1-120

MF系列VBA技术资料 为了让广大学员在实际VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属…

一篇文章让你搞懂内存函数

内存操作函数 memcpy 库函数memcmp介绍 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 ‘\0’ 的时候并不会停下来。 如果source和destination有任何的重叠,复制的结果都是未定义的。 库函数memcmp的代码形式 v…

Ubuntu使用Samba设置共享文件夹提示“拒绝访问”的解决办法一

问题:看图片 IP正确,用户名也对。 解决:重新设置密码 sudo smbpasswd -a topeet 添加成功

详解CAS算法

CAS的全称是 Compare And Swap(比较并交换),它是并发编程中的一个重要概念。本文结合Java的多线程操作来讲解CAS算法。 CAS算法的优势是可以在不加锁的情况下保证线程安全,从而减少线程之间的竞争和开销。 目录 一、CAS算法的内…

979. 在二叉树中分配硬币(力扣)

在二叉树中分配硬币 题目一题一解:DFS(java)思路步骤解析测试代码复杂度分析运行结果 优化代码思路测试代码运行结果复杂度分析 题目 给你一个有 n 个结点的二叉树的根结点 root ,其中树中每个结点 node 都对应有 node.val 枚硬币。整棵树上一共有 n 枚…

韦东山-BeagleV-Ahead TH1520 RISC-V 高性能开发板开箱硬件评测

BeagleV-Ahead开箱硬件讲解 BeagleV-Ahead开箱介绍 非常感谢 中国杭州平头哥半导体优先公司 和 Beagle社区给予我们 全球首款高性能 TH1520 RISC-V SBC开发板 BeagleV-Ahead评测工作,我们将围绕 开发板 外观 ,板载功能接口,系统启动系统初体…

AcWing 107. 超快速排序—逆序对

问题链接: AcWing 107. 超快速排序 问题描述 分析 这道题考查的算法不难,就只是利用归并排序来求逆序对的数量,但是主要是如何分析问题,如何能从问题中看出来和逆序对数量有关,现在的题目基本上很少是那种模板算法题了&#xff…

力扣21. 合并两个有序链表

题目 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 链接:21. 合并两个有序链表 - 力扣(LeetCode) 题解 设置两个指针head和tail,head用来指向新链表的头结点,tail…

HCIA初级考试题目(复制粘贴命令修改满分试卷)

要求: (设备名称按照拓扑标识修改,注意区分大小写) 1、ISP路由器仅配置IP地址 2、test-1和test-2仅作为代替终端设备进行测试使用,路由采用静态路由 3、R1/R2之间使用OSPF做到内网全通,单区域,O…

3.6.cuda运行时API-共享内存的学习

目录 前言1. 共享内存2. shared memory案例3. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习精简 CUDA 教程-共享…

前端vue入门(纯代码)32_编程式路由导航

星光不问赶路人&#xff0c;时光不负有心人 【30.Vue Router--编程式导航】 除了使用 <router-link> 创建 a 标签来定义导航链接&#xff0c;我们还可以借助 $router 的实例方法&#xff0c;通过编写代码来实现。 编程式路由导航的5种方法 我们先看一下组件实例中的t…

掌握这几招,让你的CTA按钮更吸引人点击

CTA全称Call-To-Action&#xff0c;是行为召唤按钮&#xff0c;是App和网页设计中的关键元素。 在落地页设计制作中&#xff0c;CTA按钮是用户在访问页面后引导用户去点击并且跳转至下一个流程&#xff08;如购买、联系、提交等行为&#xff09;的按钮控件。其核心目标是引导用…