密云做网站的中国建行官网首页

web/2025/9/30 5:43:29/文章来源:
密云做网站的,中国建行官网首页,免费网络推广公司,做网站的 视频Kafka_04_Topic和日志 Topic/PartitionTopicPartition 日志存储存储格式日志清理删除压缩 Topic/Partition Topic/Partition: Kafka中消息管理的基础单位 Topic和Partition并不实际存在(仅逻辑上的概念) 如: Topic和Partition关系 // 每个日志文件可对应多个日志分段, 其还可… Kafka_04_Topic和日志 Topic/PartitionTopicPartition 日志存储存储格式日志清理删除压缩 Topic/Partition Topic/Partition: Kafka中消息管理的基础单位 Topic和Partition并不实际存在(仅逻辑上的概念) 如: Topic和Partition关系 // 每个日志文件可对应多个日志分段, 其还可分为索引、日志存储和快照等 Topic Topic(主题): Kafka中消息归类单位 Topic管理本质: 管理Topic对应的日志存储(文件)日志存储随机分步于各个Broker以提搞Topic容灾性日志存储数量 Partition数量 * Replica数量存储文件格式: Topic名-Partition名-序列号 // 可通过Kafka自带kafka-topics.sh脚本完成Topic相关管理 Topic名称组成: 大小写字母、数字、点号、连接线、下划线 Topic名称必须含有点号或下划线(metrics命名时会将前者替换为后者)不建议使用双下划线作为前缀(其常为内部Topic格式)创建Topic的本质(交由控制器异步完成) // ZooKeeper的/brokers/topics/和/config/topics/下创建子节点并写入Partition分配方案和配置信息 管理Topic须知: 创建Topic时Broker需统一是否配置机架信息, 否则会创建失败Topic创建后仅能增加Partition数量(Partition不能被删除)Partition数量变化会影响Key的计算(影响消息顺序) Partition Partition(分区): 组成Topic的单位(实际存储消息) Partition可有多个副本(leader和follower), 每个副本对应个日志文件leader提供读写服务, follower副本仅和leader进行数据同步leader恢复后重新加入, 则只能为新的follower 优先副本: AR集合中首个副本 理想情况下优先副本应是Partition的leaderKafka会确保所有Topic的优先副本在集群中均匀分布Partition平衡: 通过选举策略使优先副本选举为leader副本 // 优先副本选举的元数据存储于ZooKeeper的/admin/preferred_replica_election Partition重分配: Partition重新进行合理的分配 当Partition所处的Broker节点下线, Kafka不会自动进行故障转移Kafka集群中增加新Broker节点时, 该节仅能分配到新创建的Partition本质部分Partition增加新副本, 并从剩余Partition的副本中拷贝数据Partition重复配过程中需保证有足够的空间(完成后自动删除原有数据) // 建议分为多个小批次执行Partition重分配, 并重启预下线的Broker Partition数量与吞吐量关系:: 限定范围内增加Partition数量可增加吞吐量 若无休止增加Partition数量, 超出限定范围后吞吐量反而下降Partition数量有上限(过多会导致Kafka进程崩溃)Partition也是最小的并行操作单位 日志存储 日志(Log): Partition对应的物理存储 日志以目录方式存储多个LogSegment日志的目录命名格式: Topic名称-Partition名称数据均以追加方式写入日志, 且以特定顺序进行追加 如: 日志存储关系 // LogSegment还包含.deleted、.cleaned、.swap等后缀文件 LogSegment(日志分段): 组成日志的基础单位 每个LogSement必须有个日志文件和两个索引文件日志的最后个LogSegment才可执行写入, 其他仅存储数据BaseOffset(基准偏移量): 每个LogSegment中首个消息的偏移量文件均以BaseOffset格式进行命名(固定为20位数字, 用0填充多余位) // BaseOffset是64位长整型数据, 其可得知前个LogSegment的数据量 日志索引: 稀疏索引实现消息的快速检索 稀疏索引达到指定大小后才建立索引(不保证Record均有对应的索引项)稀疏索引通过MappedByteBuffer将索引文件映射到内层中通过二分定位小于指定偏移量的最大偏移量各索引均严格单调递增 存储格式 存储格式: 日志存储在硬盘的格式 日志的存储格式决定其占用空间大小和检索速率日志的存储格式演进为3个版本: v0(0.10.0)、v1(0.11.0)、v2 如: 日志存储格式 // Varints(变长整型): 使用任意多个字节序列化记录整数(特定范围减少空间) 消息压缩: 将RecordBatch压缩成单个Record 压缩生成的消息记为外层消息(反者为内层消息)外层消息的key为null, 而value为内层消息(偏移量查找)内层消息的偏移量均从0开始(使用时Broker会进行转换计算) 如: 外层消息和内层消息的偏移量 // 外层消息存储的是内层消息中最后条消息的绝对位移(相对于Partition而言) 日志清理 日志清理: Kafka对日志的维护 日志清理策略分为: 删除、压缩日志清理的粒度最细可为Topic级别可同时指定删除和压缩为日志清理的策略 删除 删除(Delete): 删除不符合特定条件的LogSegment 删除依据分为: 时间、文件大小、日志的起始偏移量Broker启动时会同时启动个线程周期性检测并删除特定LogSegment删除线程会基于依据选择出可被删除的LogSegment(deletableSegment) 日志删除的大致流程 从日志对象中所维护的LogSegment跳跃表中移除待删除的LogSegment将所有待删除的文件添加.deleted后缀(包括索引文件)统一交由延迟删除线程处理(默认1m) 基于时间删除: 每个LogSegment拥有过期时间 根据LogSegment的最大时间戳(最后条消息)若最后条消息的时间戳字段小于0, 则根据最近修改时间若所有LogSegment均满足删除条件, 则在删除前创建activeSegment 如: 基于时间的日志删除(只要最大时间戳未过期就不会被删除) 基于文件大小: 每个LogSegment的限定大小 基于文件大小又可分为日志大小、LogSegment大小若基于日志大小, 则超出限定时默认从头开始删除LogSegment 如基于大小的日志删除 基于日志的起始偏移量: 下个LogSegment的BaseOffset是否小/等于起始偏移量 删除线程会逐个遍历LogSegment以判断BaseOffset是否满足日志起始偏移量常为首个LogSegment的BaseOffset 如: 基于日志的起始偏移量(假设起始偏移量为25) 压缩 压缩(Compact): 将具有相同Key的消息仅保留最后个版本的Value 压缩后生成新的LogSegment, 消息的物理位置不会改变压缩后的偏移量不再连续(不影响日志的检索)压缩前后的消息可分为: clean和dirtyactiveLogSegment不参与压缩 如日志压缩时其构成部分 // 日志的cleaner-offset-checkpoint文件记录每个Partition的已清理偏移量 日志压缩时大致流程: 日志的污浊率触发压缩操作压缩线程遍历两次日志(获取Key和判断)对于压缩LogSegment的进行分组(防止过多小文件)将LogSegment组中需保留消息存储于.clean后缀的临时文件对日志进行压缩, 在压缩完成后将.clean临时文件后缀改为.swap删除被压缩的LogSegment, 并将.swap后缀去除(变为可用LogSegment) // LogSegment组的大小不可超过LogSegment的限定大小 如: 多次压缩的日志文件 // ActiveSegment(活跃的日志分段): 可执行写入操作的LogSegment

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

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

相关文章

建立个人网站主题新中式装修风格效果图

最近遇到一个python的小数的问题,本来应该很简单的小于判断,无论如何都不正确,而且浮点小数都没问题,但decimal小数有问题,给我整蒙了,后来才发现是对decimal不了解所致,如果你还用float转decim…

网站管理建设落实报告wordpress register

问题描述:vue3项目的页面A跳转到页面B时,页面B页面是空白的,需要手动刷新一下才能恢复正常,在页面A中用iframe引入了别的网站(后续事实证明,跟iframe没一毛钱的关系)。着急的童鞋可以直接拉到底…

工信部网站备案查询步骤详解五合一免费建站

1 赛题思路 (赛题出来以后第一时间在群内分享,点击下方群名片即可加群) 2 比赛日期和时间 报名截止时间:2024年4月11日(周四)12:00 比赛开始时间:2024年4月12日(周五)8:00 比赛结束时间&…

山西长治做网站公司又拍网站怎么做的

1)控制标签体内容是否输出 2)控制标签余下内容是否输出 3)控制重复输出标签体内容 4)改变标签体内容 5)带属性的标签 package com.loaderman.demo.a_tag;import java.io.IOException; import java.io.StringWriter;imp…

杭州网站建设有限公司凡科网站登录入

考点介绍: HashMap是大中小厂面试的高频考点,主要从底层结构,和线程安全等角度来进行考察,考察点比较集中,但是有一定难度。 分为初级和高级两种:初级一般集中在中小公司的map的key-value的可重复和可空问题…

游戏网站建设的策划书深圳网站设计 深圳信科

企业知识库是一种特殊的在线协同文档工具,支持包括FAQ、文档、视频、知识图谱等。从本质上讲,它是基于企业知识库软件从而实现内部或外部知识的沉淀、集合、更新、共享等,能为员工或客户提供常见问题的标准回答。 今天我就基于HelpLook &…

三亚市住房与城乡建设局网站网站建设的教学网站

现在是信息时代,随着时代的进步,互联网是人们生活不可或缺的一部分。通常由许多不同类型的计算机网络相互连接而成。如果几个计算机网络在物理上连接在一起,它们之间并不能进行沟通,那么这种“互连”没有实际意义。所以在谈到“互连”时,就已经暗示这些相互连接的计算机可以进行…

外贸网站排行scratch编程

力扣71.简化路径 根据双斜杠 求出每一组夹在里面的字符串 处理有意义的字符串 将所有路径存在字符串数组中最后用所有剩余的路径名称 变为答案 class Solution {public:string simplifyPath(string path) {vector<string> res;string ans;string cnt"";int …

门户网站程序学习软件的网站

游戏简介&#xff1a;《放置奇兵》是一款全球顶级奇幻RPG手游&#xff0c;派出你的英雄小队&#xff0c;出 发&#xff0c;从碧绿葱葱的萨拉森林到神圣威严的至高天&#xff0c;同数百万玩家一同踏上魔幻旅程&#xff0c;带领你的英雄小队深入古老的废墟&#xff0c;对抗邪恶的…

应聘的做网站推广的建设网站有哪些方法有哪些

文章目录1. CSDN 博客数据2. 基础算法练习3. 机器学习4. 深度学习5. MySQL6. 总结和展望时间过得很快&#xff0c;2020结束了&#xff01; 写个流水账&#xff0c;记录一下。 1. CSDN 博客数据 截个图对比下&#xff1a; 2019年终2020年终 2. 基础算法练习 LeetCode 刷题 …

企业网站背景图片网站网络营销平台

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

wordpress 付款插件360优化大师下载安装

Systemd 是 Linux 系统工具&#xff0c;用来启动守护进程&#xff0c;已成为大多数发行版的标准配置。 本文介绍它的基本用法&#xff0c;分为上下两篇。今天介绍它的主要命令&#xff0c;下一篇介绍如何用于实战。 一、由来 历史上&#xff0c;Linux 的启动一直采用init进程。…

免费做电子书的网站新闻头条最新消息

论文笔记整理&#xff1a;叶群&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。会议&#xff1a;WSDM 2019链接&#xff1a;https://dl.acm.org/citation.cfm?id3290961Motivation基于spring-electrical的模型在网络可视化中取得了非常成功的应用&#xff0c;一…

如何把网站转换成wap站点wordpress文章什么时候收录

vue中有很多的指令像v-on、v-model、v-bind等是我们开发中常用的 常用指令 v-bind 单向绑定解析表达式 v-model 双向数据绑定 v-for 遍历数组/对象/字符串 v-on 绑定事件监听,可简写为@ v-show 条件渲染(动态控制节点是否存展示) v-if 条件渲染(动态控制节点是否存存在) v…

网站做实名验证如何优化

世界上只有一种英雄主义&#xff0c;就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生&#xff0c;但对于它的实现原理以及缺点却鲜为人知&#xff0c;而本文将会从 Lombok 的原理出发&#xff0c;手撸一个简易版的 Lombok&#xff0c;让你理解这个热门…

兰州城市建设学校网上报名网站商务网站开发公司

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.1 例10.1 从键盘输入一些字符&#xff0c;逐个把它们送到磁盘上去&#xff0c;直到用户输入一个“#”为止。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&…

汽车网站开发方案郑州专业做网站企业

首先我们在new 一个对象的时候&#xff0c;对象的id是唯一确定的&#xff1b;将对象add入list中时&#xff0c;放入list中的其实是对象的引用 &#xff1b;而每次循环只是简单的set 对象的属性&#xff0c;set新的属性值&#xff0c;而add进list中的对象还是同一个对象id&#…

建筑招工网站虚拟机安装 wordpress

档案数字化管理提供了便捷、高效和安全的档案管理服务&#xff0c;帮助组织更好地管理和利用自己的档案资源。 具体来说&#xff0c;专久智能档案数字化管理可以提供以下服务&#xff1a; 1. 档案扫描和数字化&#xff1a;将纸质档案通过扫描仪转换为数字格式&#xff0c;包括文…

若比邻跨境电商网站资阳自贡网站建设平台

目录 安装Pyecharts 安装对应的地图拓展&#xff1a; 准备数据 使用 pyecharts 模块中的 Geo 函数&#xff1a; 使用 pyecharts 模块中的 map 函数&#xff1a; 把一些地域性比较明显的数据显示在一张地图上&#xff0c;远比给别人一个 Excel 文件好得多。 Matplotlib 中…

网站建设app开发学习线上营销活动主要有哪些

目录如何实现一个服务器C编写程序配置CMakeLists.txt编译并运行python创建并编写脚本运行平台&#xff1a;华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本&#xff1a;Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 记录自【古月居】古月ROS入门21讲 | 一学就会的ROS机器人入…