消息队列-kafka-服务端处理架构(架构,Topic文件结构,服务端数据的一致性)

服务端处理架构

资料来源于网络
在这里插入图片描述
网络线程池:
接受请求,num.network.threads,默认为 3,专门处理客户的发送的请求。

IO 线程池:
num.io.threads,默认为 8,专门处理业务请求。也就是它不负责发送响应,发送响应还是由网络线程池处理。

当遇到性能瓶颈的时候可以适当的调整这两个参数

服务端消息存储文件布局

1 Topic 文件结构
在这里插入图片描述
Segment 文件结构
命名规则:一个 segment 的名称其实是当前 segment 第一条消息的偏移量,也就是说一个segement如果写不下了就会生成新的segment。
查找机制

  • 将所有的 segment 文件名进行生序排列然后找到偏移量最后落在哪个 segment 对象上(采用二分,因为文件名是有序的)。
  • 继续从这个 segment 里面的 .index 文件找到消息的物理偏移量,也就是对应图中的.index偏移量,最后拿着物理偏移量去 .log 文件找到最终的实体消息,非常的迅速。
    删除机制
    按照时间过期多少删(默认7天)、按照大小来删

服务端数据的一致性

其实也就是分区和副本之前的一致性。比如说我们P0有9条消息,因为每个节点同步数据(网络,IO等原因)所以导致R0 和 R3 之间的数据并不一致。
HW:高水位,消费者消费最高的位置,其实也就是木桶原理,所以只能到下面图中的第四条消息。
LEO:log写文件的最后一个位置。
ISR:也就是一个分区和备份节点的队列。比如P0,R0,R3.

如果我们的备份节点挂掉了:
1 首先它会从ISR中剔除,当恢复正常的时候,会向主分片获取 HW 高水位线,与自己的 LEO 比对,如果自己的 LEO 超过 HW 则干掉超过的部分,小于的话就从主分片复制数据过来。
2 复制的时候,如果复制之后的 LEO 与 HW 持平的话,那么就会重新加入到 ISR 同步队列中

如果我们的主分区挂掉了:
1 从ISR中剔除,选择数据最多的数据为主分片。
2 活过来的时候,发现已经有顶替的 leader 角色(主分片)了,那么就跟随,也就是向 leader 获取 HW 高水位线,与自己的 LEO 比对,大于 LEO 则删除,小于 LEO 则从 leader 这边复制数据过去。
3 复制数据的进度如果赶上了主分片的 HW 的话,那么就继续加入到 ISR 队列中。
但是我们主分片数据最多,为什么要把后面的数据干掉呢,这样不是会丢失消息吗?
这样其实是保证了数据的一致性,也就是保证分区和备份节点的都是同样的进度。
数据不丢失问题是由Producer来保证的,也就是有重试机制,如果没有发送成功的话,就会从新发送,但是消费者一侧一定要做幂等。
在这里插入图片描述

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

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

相关文章

JetBrains TeamCity 身份验证绕过漏洞(CVE-2024-27198)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

刷题DAY9 | LeetCode 28-实现 strStr() 459-重复的子字符串

28-实现 strStr()(easy) 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 思路…

剑指offer--c++--n个骰子的点数

目录 题目: 题目分析: 最后编写代码: 输出结果 题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 感谢大佬的帮助:https://www.cnblogs.c…

了解处理器

了解处理器 摘要写在前面1. 计算机简介1.1.计算机发展简史1.2.计算机分类1.3.PC机结构 2.初识处理器2.1.处理器的硬件模型2.2.处理器的编程模型2.3.处理器的分层模型2.4.如何选择处理器 3.指令集体系结构3.1.处理器编程模型3.2.指令集发展历程3.3.指令集分类3.4.汇编语言格式3.…

商业数据增长超88%!小红书热门内容解析,用户“打卡”新玩法

长久以来,“打卡”在社交媒体盛行,频频涌现新风潮,几乎覆盖美食、旅游、美妆等众多热门行业,今天吃了什么、玩了什么、做了什么?大众都喜欢通过打卡来分享。特别是小红书平台,打卡内容热度经久不衰&#xf…

13 丢弃法dropout【李沐动手学深度学习v2笔记】

1. 丢弃法 在层之间加入随机噪音 加入噪音的一些规则 加入噪音后不要改变期望 使用丢弃法 推理中的丢弃法 总结 2. 代码实现 4.6. 暂退法(Dropouthttps://zh.d2l.ai/chapter_multilayer-perceptrons/dropout.html 2.1 Dropout import torch from torch import n…

Redis中的单线程高性能原因和其他高级命令

单线程 Redis是单线程吗? Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是 Redis对外提供键值存储的主要流程。但Redis的其他功能,比如持久化、异步删除、 集群数据同步等,其实是由额外的线程执行的…

小米澎湃和华为原生鸿蒙,那个更有发展前景?

小米的澎湃系统暂时不了解,但华为的鸿蒙系统值得一说。 就目前鸿蒙而言;24年初鸿蒙星河版面向开发者开放申请。其底座全线自研,去掉了传统的 Linux 内核以及 AOSP 安卓开放源代码项目等代码,仅支持鸿蒙内核和鸿蒙系统的应用。星河…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(一)-向量扩展编程模型

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

我的第②个出海工具站 - 2024年50个出海工具站计划

为了大家更好的使用各种出海工具。我上线了一版 出海工具导航 站点,经常使用的可以收藏下,我文内使用的网站都集成在了这里,非常使用。 随着AIGC的到来,2024年到了海外工具回暖的一年。今年计划上线50款出海工具站计划&#xff0c…

激光炸弹 刷题笔记

前置知识 二维前缀和 子矩阵的和 刷题笔记 {二维前缀和}-CSDN博客 思路 参考二维前缀和 将子矩阵的和 做成动态矩阵 一个个矩阵搜索 符合要求边长 矩阵中的元素和最大值 将x1,y1用i-k,j-k表示即可 x2,y2用i&#xff0c;j表示 代码 #include<iostream> #include<…

MongoDB获评2023年Gartner®云数据库管理系统“领导者”

MongoDB 很荣幸在《2023 年 Gartner 云数据库管理系统 (CDBMS) 魔力象限》报告中被评为领导者。我们相信这一成就让 MongoDB 成为唯一一家连续两年斩获“领导者”称号的纯应用程序数据库服务提供商。 社区及开发者数据平台用户的需求一向是 MongoDB 关注的重点&#xff0c;而这…

tomcat 搭建博客 及破解数据库密码

一 tomcat 搭建博客 &#xff08;一&#xff09;博客安装包 1&#xff0c; 把博客war包 放到 webapps 文件夹下 2&#xff0c;会自动解压 3&#xff0c;做个软连接 方便后续操作 可以注意到 因为war包 是又tomcat 自己解压的 所以属主数组还是 tomcat &#xff08…

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

静态时序分析:SDC约束命令set_disable_timing详解

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定对象列表 指定源、目的引脚 指定恢复 简单使用 写在最后 上一章中&#xff0c;我们学习了如何使用set_case_analysis模式分析命令&#xff0c;它通过指定某个端口或引脚为固定值&…

代码随想录第50天|● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV

文章目录 ● 123.买卖股票的最佳时机III思路代码一&#xff1a;dp二维数组代码二&#xff1a;四个数存储 ● 188.买卖股票的最佳时机IV思路&#xff1a;代码&#xff1a; ● 123.买卖股票的最佳时机III 思路 dp[i][j]中 i表示第i天&#xff0c;j为 [0 - 4] 五个状态&#xff0…

MathType玩耍指南

ML论文里特别多公式&#xff0c;里面有各种奇奇怪怪符号&#xff0c;怎么打出来呢&#xff1f; 认识这个符号&#xff0c;直接搜索 比如认识上面那个indicator function是个I&#xff0c;有时候是1&#xff0c;那么就搜索mathtype怎么打印双线符号这样的&#xff1b; 不认识…

git遇到的报错

这是小编在gits所遇到的报错集合&#xff0c;可能不会包含大家的报错信息但是咱们可以在评论区留言共同收集git的报错信息以及解决方法&#xff01; SSL证书问题 解决办法&#xff1a;git命令下运行 git config --global http.sslVerify false 然后再进行重新clone代码 Git应…

美易官方《盘前:美国股指期货温和走低》

美国股指期货在盘前交易中温和走低&#xff0c;市场情绪在美联储主席鲍威尔即将作证前显得谨慎。投资者对即将公布的证词内容充满期待&#xff0c;以寻求对美联储未来货币政策的更多线索。 鲍威尔即将在国会作证&#xff0c;这是市场关注的焦点事件之一。他的证词可能会对美元汇…

信钰证券|昨夜,“金龙”大涨

当地时间2月27日&#xff0c;我国资产自开盘一路走高&#xff0c;抢手中概股普涨&#xff0c;纳斯达克我国金龙指数涨2.10%。其中&#xff0c;抱负轿车涨超11%&#xff0c;网易涨超5%&#xff0c;爱奇艺、微博涨超4%。 美股方面&#xff0c;三大指数涨跌纷歧。到收盘&#xff…