kafka的关键细节 以及 分区和主题的概念

news2024/11/15 17:24:26

文章目录

  • Kafka中的关键细节
    • 1.消息的顺序存储
    • 2. 单播消息的实现
    • 3.多播消息的实现
    • 4.查看消费组及信息
  • 主题、分区的概念
    • 1.主题Topic
    • 2.partition分区


Kafka中的关键细节

1.消息的顺序存储

消息的发送方会把消息发送到broker中,broker会存储消息,消息是按照发送的顺序进行存储。因此消费者在消费消息时可以指明主题中消息的偏移量。默认情况下,是从最后一个消息的下一个偏移量开始消费。

2. 单播消息的实现

单播消息:一个消费组里 只会有一个消费者能消费到某一个topic中的消息。于是可以创建多个消费者,这些消费者在同一个消费组中。

./kafka-console-consumer.sh --bootstrap-server 10.31.167.10:9092 --consumer-property group.id=testGroup --topic test

3.多播消息的实现

在一些业务场景中需要让一条消息被多个消费者消费,那么就可以使用多播模式。
kafka实现多播,只需要让不同的消费者处于不同的消费组即可。

./kafka-console-consumer.sh --bootstrap-server 10.31.167.10:9092 --consumer-property group.id=testGroup1 --topic test

./kafka-console-consumer.sh --bootstrap-server 10.31.167.10:9092 --consumer-property group.id=testGroup2 --topic test

4.查看消费组及信息

# 查看当前主题下有哪些消费组
./kafka-consumer-groups.sh --bootstrap-server 10.31.167.10:9092 --list
# 查看消费组中的具体信息:比如当前偏移量、最后一条消息的偏移量、堆积的消息数量
./kafka-consumer-groups.sh --bootstrap-server 172.16.253.38:9092 --describe --group testGroup

输入图片说明

  • Currennt-offset: 当前消费组的已消费偏移量
  • Log-end-offset: 主题对应分区消息的结束偏移量(HW)
  • Lag: 当前消费组未消费的消息数

主题、分区的概念

1.主题Topic

主题Topic可以理解成是一个类别的名称。

2.partition分区

输入图片说明

![> 一个主题中的消息量是非常大的,因此可以通过分区的设置,来分布式存储这些消息。比如一个topic创建了 3

个分区。那么topic中的消息就会分别存放在这三个分区中。](https://img-blog.csdnimg.cn/9e685de732c54e5bab1c210232c0b95b.png)

为一个主题创建多个分区

./kafka-topics.sh --create --zookeeper localhost:2181 --partitions 2 --topic test1

可以通过这样的命令查看topic的分区信息

./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test1

分区的作用:

  • 可以分布式存储
  • 可以并行写
    实际上是存在data/kafka-logs/test-0 和 test-1中的0000000.log文件中

小细节:

定期将自己消费分区的offset提交给kafka内部topic:__consumer_offsets,提交过去的
时候,key是consumerGroupId+topic+分区号,value就是当前offset的值,kafka会定期清理topic里的消息,最后就保留最新的那条数据 因为__consumer_offsets可能会接收高并发的请求,kafka默认给其分配
50 个分区(可以 通过offsets.topic.num.partitions设置),这样可以通过加机器的方式抗大并发。
通过如下公式可以选出consumer消费的offset要提交到__consumer_offsets的哪个分区
公式:hash(consumerGroupId) % __consumer_offsets主题的分区数

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

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

相关文章

python本科毕业设计基于神经网络的虚假评论识别系统源码,含模型及数据

主要函数: 1.corpusprocess原始语料处理函数 2.train_word2vec生成word2vec向量 3.generate_id2wec获得索引的w2id,和嵌入权重embedding_weights 4.prepare_data 数据预处理 完整代码下载地址:python本科毕业设计基于神经网络的虚假评论识别系统源码 代…

多线程(初阶)——多线程基础

多线程(初阶)——多线程基础 文章目录多线程(初阶)——多线程基础1.认识线程2.多线程程序2.1 第一个Java多线程程序2.2 观察线程的详细情况2.3 sleep方法2.4 run和start方法的区别3.创建线程3.1 继承Thread类3.2实现Runnable接口3.3 通过匿名内部类创建线程3.4通过实现Runnable…

【目标检测】------yolox网络结构

YOLOX网络结构图 卷积和池化计算器: http://www.sqflash.com/cal.html

ServletAPI 2-10复杂参数, 解析完的参数值都会放到 ModelAndViewContainer里面

总结: 找到解析器后,用解析器去解析参数,都使用了resolveArgument()中以下方法 mavContainer.getModel(); mavContainer:模型和视图容器 视图:页面请求要返回一个地方,这个地方的地址叫视图 。比如要到/sucess 模…

CV——day70 零基础学YOLO:YOLOv1

YOLO系列1. 不同阶段算法优缺点分析2. IOU指标计算3. MAP指标计算**指标分析**如何计算MAP4 YOLOv14.1 YOLOv1核心思想4.2 YOLOv1网络架构那么,7 * 7 * 30的输出是怎么来呢?4.3 损失函数4.3.1 位置误差4.3.2 置信度误差(含object)4.3.3 置信度误差(不含o…

股票量化分析工具QTYX使用攻略——小市值轮动选股策略(更新2.5.9)

搭建自己的量化交易系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统。 如何学会搭建自己的量化交易系统? 边学习边实战,在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习,也可以用于实战炒股分析…

Springboot农产品特产销售网站maven mysql idea

摘 要 I 1 绪论 1 1.1研究背景 1 1.2研究现状 1 1.3研究内容 2 2 系统关键技术 3 2.1 JSP技术 3 2.2 JAVA简介 3 2.3 MYSQL数据库 4 2.4 B/S结构 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2经济可行性 5 3.1.3操作可…

[Android开发基础2] 七大常用界面控件(附综合案例)

文章目录 一、文本TextView 二、按钮Button 三、编辑输入框EditText 四、图片ImageView 五、单选按钮RadioButton 六、复选框CheckBox 七、系统消息框Toast 综合案例&#xff1a;账号注册界面 一、文本TextView TextView控件用于显示文本信息。 演示&#xff1a; <?…

kafka可视化web管理工具-KafkaMmap

kafka可视化web管理工具-KafkaMmap ​ 使用过kafka的小伙伴应该都知道kafka本身是没有管理界面的&#xff0c;所有操作都需要手动执行命令来完成。但有些命令又多又长&#xff0c;如果没有做笔记&#xff0c;别说是新手&#xff0c;就连老手也不一定能记得住&#xff0c;每次想…

blender绑定骨骼法 2 rig

image.pngimage.png生成一个body_temp add neck 脖子 add chin 下巴 image.pngadd shoulder肩膀 image.pngadd wrist手腕 add spline root .额那个位置 image.pngadd ankle脚踝 image.pngFACIAL setup是面部的骨骼绑定,这里没眼球啥的就不弄了直接 点go 就生成了骨骼. image.pn…

1、SPSS 25的安装

目录 一、简介 二、竞争优势 三、安装步骤 一、简介 SPSS 是一款用于Windows操作系统的数据和科学图形的数值分析软件&#xff0c;能够为用户提供多样的数据统计、处理、报告等功能&#xff0c;还能根据数据帮用户生成离散图、折线图等图形&#xff0c;以更加直观的方式向你…

【数据库增删查改基础版】本文将与大家一起去探索基础版本的数据库增删查改,图文讲解数据库增删查改

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#xff0c;这篇文章我将带领大家进入基础版本增删查改数据库的学习&#xff0c;后面的文章会有数据库进阶版&#xff0c;更多的约束条件让你润享丝滑。增删查改是数据库操作中极其重要的内容&#xff0c;我们从简单入手&#x…

12.Java二维数组讲解

本篇文章重点需要掌握的内容如下: 后面附有Java二维数组的练习题 文章目录前言一、二维数组的应用场景二、二维数组的初始化1.静态初始化2.动态初始化三、二维数组的内存图1.特殊情况1的写法:特殊情况1的写法的好处:2.特殊情况2的写法四、二维数组的练习题总结前言 一、二维数…

三子棋游戏

前言 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来&#xff0c;相对两边依次摆上三个双方棋子&#xff0c;只要将自己的三个棋子走成一条线&#xff0c;对方就算输了。但是&#xff0c;有很多时候会出现和棋的情况。 文…

Hi3861鸿蒙物联网项目实战:倒车雷达

华清远见FS-Hi3861开发套件&#xff0c;支持HarmonyOS 3.0系统。开发板主控Hi3861芯片内置WiFi功能&#xff0c;开发板板载资源丰富&#xff0c;包括传感器、执行器、NFC、显示屏等&#xff0c;同时还配套丰富的拓展模块。开发板配套丰富的学习资料&#xff0c;包括全套开发教程…

Cadence PCB仿真 使用 Allegro PCB SI 敏感网络列表.lst文件的建立方法图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,基本方法3,建立技巧4,总结1,概述 敏感网络表(.lst文件)是一个在PCB设计阶段需要特别关注的网络列表。本文简单介绍其建立或导出方法。 2,基本方法 第1步:使用记事本新建1个文本文档…

vue2原理核心Object.defineProperty()的理解

Object.defineProperty(obj, prop, { configurable:false //默认false ,为true是可以属性修改,删除 enumerable:false //默认false ,为true是可以枚举对象 value:prop对应的值 // 初始为undefined writable:false //默认false ,为true是可以修改value的值 }) o…

python实现XML文件的内容变更

文章目录一、使用背景二、实现效果三、内置库的使用四、代码实现解析五、完整代码一、使用背景 我们在某些情况下需要对XML格式的文件进行内容处理&#xff0c;可以直接打开处理&#xff0c;但是对于一些需要自动化或者不方便手动处理的情况下我们的代码实现就比较关键啦&…

maxlength属性

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>maxlength属性</title> </head> <body> <form action"action_page.php"> <!--…

面试官问:生产环境遇到难题,你是如何解决的?

1、生产环境发生 cpu 飙高的问题&#xff1f;你是如何定位解决的呢&#xff1f; 我们的线程是运行在 cpu 上面 1. CAS 自旋一直重试导致 cpu 飙高 没有控制自旋次数&#xff1b;乐观锁 2. 死循环; 3. 阿里云 Redis 被注入挖矿程序,建议 Redis 端口不要能够被外网访问; 4. 服务…