宝安网站 建设seo信科贵州建设厅监理协会网站

diannao/2025/10/14 11:33:29/文章来源:
宝安网站 建设seo信科,贵州建设厅监理协会网站,模板之家官网首页,ui要学哪些知识前言 随着现代软件系统日益复杂和用户规模的不断增长#xff0c;分布式架构成为了保持系统高可用性与高性能的标准解决方案。然而#xff0c;随之而来的是对系统容量治理的新挑战。在这样的背景下#xff0c;容量治理成为了分布式系统设计和运维中不可或缺的一环。要确保系…前言 随着现代软件系统日益复杂和用户规模的不断增长分布式架构成为了保持系统高可用性与高性能的标准解决方案。然而随之而来的是对系统容量治理的新挑战。在这样的背景下容量治理成为了分布式系统设计和运维中不可或缺的一环。要确保系统既能够应对高峰期的巨大访问压力又能在用户较少时优化资源使用我们必须掌握并运用容量治理的“三板斧”扩容、限流与降级。本篇文章将深入介绍这三种常见的架构理念帮助读者理解它们的工作原理及应用场景以及如何有效地将这些理念整合到我们的分布式架构策略中。 正文 在我们进行分布式架构设计的时候需要对当前业务流量进行评估可以从容量治理三板斧扩容、限流与降级方面来建立系统的冗灾体系将潜在的系统故障带来的损失降到最低。 扩容 当我们系统采用的是微服务的架构的时候我们理论上可以通过增加机器的方式来提高我们整个系统处理业务请求的吞吐量。在进行扩容的时候我们需要了解负载均衡和预热从而达到扩容提升系统的并发能力的目标。 负载均衡 负载均衡通常有两种方式分别是四层负载均衡与七层负载均衡它们的的区别在于 四层交换机通过解析TCP头等协议的内容来决定分流的目的地七层交换机则通过解析软件应用层的内容来决定分流的目的地。四层是基于IP端口号进行负载均衡的七层是基于URL进行负载均衡的。七层对负载均衡的设备要求更高性能方面比四层弱。七层负载均衡更加智能化安全性上更加有保障。 负载均衡实现方案 常见负载均衡的方法有 利用Http重定向负载均衡即利用nginx中的rewirte模块来实现。客户端行为不需要服务器转发响应这种方法性能比较差DNS域名解析负载均衡DNS负载均衡的控制权在域名服务商中通常作为第一级负载均衡手段。不需要服务器转发响应反向代理负载均衡即利用nginx中的upstream模块来实现配置简单但性能也有局限性响应要通过反向代理服务器返回给客户端IP负载均衡即利用网关服务器实现负载均衡性能有提升响应要通过网关服务器受限于其网卡带宽数据链路层负载均衡在通讯协议的数据链路层修改mac地址进行负载均衡。不需要服务器转发响应最常见的是LVS 负载均衡算法 轮询所有请求被依次分发到每台应用服务器上即每台服务器需要处理的请求数目都相同适合于所有服务器硬件都相同的场景。加权轮询在轮询的基础上按照配置的权重将请求分发到每个服务器高性能的服务器能分配更多的请求。随机请求被随机分配到各个应用服务器即使应用服务器配置不同可以加权随机算法。这种方法最常用最小连接记录每一个应用服务器正在处理的连接数将新的请求分发到最少连接的服务器也支持加权最小连接。Hash选择对请求的IP地址进行hash计算实现同一个IP地址的请求总在一个服务器上处理。实现对有状态应用服务器高可用的一种方式 预热 缓存预热 缓存预热的策略 静态预热系统启动时根据历史访问模式或预期的访问模式加载最常访问的数据到缓存中。动态预热通过监控工具来捕捉最近的访问模式和频率动态地预热数据。标准化脚本编写脚本按照预定规则提前加载缓存数据。后台处理通过设置后台任务定期地进行数据预热例如在系统流量较低时预加载第二天特别活动的相关数据。热点数据预热针对访问频率高的数据热点数据在缓存失效前主动更新缓存。 机器预热 JIT技术 在Java中解释执行模式通常指Java程序运行时Java虚拟机JVM会逐条将字节码指令转换解释成机器码然后执行而不是将整个程序编译成机器语言再执行。 JVM实现引入了即时编译Just-In-Time, JIT技术即在程序运行时动态地将字节码编译成机器码这样热点代码经常执行的代码就可以直接以编译后的机器码运行从而提高了执行效率。 使用-XX:CICompilerCount参数可以来设置编译线程数目这个值默认是2。 机器预热的方式 程序主动预热在启动完成后程序主动的访问热点的代码确保主要的热点代码已被编译成机器码后再放入流量可通过-XX:PrintCompilation来确认。 复制流量预热通过tcpcopy软件拷贝一份线上nginx的流量进行预热完成之后再导入线上流量。 限流 限流算法 我们常见的限流算法有 漏桶算法令牌桶算法滑动窗口算法 漏桶算法 nginx的limit_conn_zone模块底层就是漏桶算法它的特点是 它可以简单的比作就是注水漏水过程往桶中以一定速率流出水以任意速率流入水当水超过桶流量则丢弃因为桶容量是不变的保证了整体的速率。它能够强行限制数据的传输速率但是由于流速是恒定的对突发特性的流量是无法处理的 。 令牌桶算法 能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。令牌桶算法是最常用的限流算法通常配合redis来实现。 令牌桶算法的组件 计数器实时地统计接口的调用速率记录单位时间内调用了多少次。限流器当令牌桶中令牌已经无法放入时使用限流器进行限流。阈值配置用于配置时间窗口平均速率以及突发情况下允许的最大速率阈值更新通过一个参数来实时调整对阈值的配置令牌桶通过一个工具类根据配置的时间窗口、平均速率、突发最大速率来模拟向桶中放置令牌的操作如果溢出了则触发限流器操作。 它的工作原理可以简单概括为 所有的请求在处理之前都需要拿到一个可用的令牌才会被处理根据限流大小设置按照一定的速率往桶里添加令牌桶设置最大的放置令牌限制当桶满时、新添加的令牌就被丢弃或者拒绝请求达到后首先要获取令牌桶中的令牌拿着令牌才可以进行其他的业务逻辑处理完业务逻辑之后将令牌直接删除令牌桶有最低限额当桶中的令牌达到最低限额的时候请求处理完之后将不会删除令牌以此保证足够的限流 知识点 a.在某种极端情况下存在请求量两倍进入 令牌桶比如以 1个/1秒 速率进入时请求又是以 2个/1秒进入这个时候令牌桶并没有满请求数就是令牌数的两倍如果超过平均速率的突发流量持续的时间过长并且令牌桶的令牌没有得到释放那么存在请求数是令牌桶大小的两倍。 滑动窗口算法 我们熟知的Sentinel高可用流量控制框架采用的就是滑动窗口的方式进行流量控制。 它将时间窗口划分为更小的时间片段每过一个时间片段我们的时间窗口就会往右滑动一格每个时间片段都有独立的计数器。我们在计算整个时间窗口内的请求总数时会累加所有的时间片段内的计数器。时间窗口划分的越细那么滑动窗口的滚动就越平滑限流的统计就会越精确。 简单举个例子我们设置一个窗口有两个方案设置 A 10s 100条请求设置 B 1s 10条请求 相对而言设置B的系统相对而言更加稳定。 总得来说 令牌桶算法能够保证自身系统的流量均匀令牌桶的填满时间是由桶的自身容量、令牌漏出速率桶下面的水管、超过平均速率的突发流量持续的时间三个方面共同决定的。漏桶算法保证被调用系统目标系统流量均匀适合请求到达频率稳定、需要严格控制处理速率的场景而令牌桶适合允许突发请求的情况。 实际的生产中通常采用 漏桶算法令牌桶算法的方式来对网络流量进行高效地控制。 限流设计 我们在评估系统业务的流量模型时常常可以梳理出类似于下图“漏斗式”的流量图我们可以根据实际的流量对每一层级的业务接口设置合理的限流值。 sentinel 限流 Sentinel 是面向微服务的轻量级流量控制框架从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel的限流原理 Sentinel以Bucket桶为单位记录一个时间窗口内的请求总数、异常总数、总耗时等指标数据。而一个Bucket可以是记录一秒内的数据也可以是10毫秒内的数据我们称这个时间窗口为Bucket的统计单位由使用者自定义。 所以Sentinel是基于滑动窗口算法来实现的。 降级 缓存降级 使用缓存的方式是我们最常用的性能优化的方式某种意义它也是一种业务降级的方式通过牺牲一定数据一致性换取高性能。 四层缓存 基于浏览器等设备的客户端缓存基于CDN加速的网络层缓存通过CDN能够实现对页面的缓存基于Ngnix等负载均衡组件(proxy_cache和 squid)的路由层缓存基于Redis等的业务层缓存 业务层的缓存可以细分 一级缓存会话级缓存在维持一个会话时查询获取的数据会存放在一级缓存中下次使用从缓存中获取。二级缓存应用级缓存当会话关闭时一级缓存的数据会保存在二级缓存中。三级缓存数据库级缓存可以实现跨jvm通过远程调用的方式实现数据同步。 业务降级 非核心组件降级 针对核心业务服务的压力剧增根据当前业务场景和流量对其他非核心服务进行降级处理比如进行限流、业务组件降级等方式快速返回等处理释放资源保证核心任务的正常运行。 设计异常情况下的最短交易路径 当系统发生短时间难以恢复的问题的时候我们要梳理出“商品下单”的最短交易路径保证核心链路可用。等待系统逐步恢复正常的时候我们可以采用异步的方式对一些缺失的数据进行补齐。 总结 在面对不断波动的用户请求与系统负载时一个精心设计的分布式架构必须具备出色的容量治理能力。在众多治理策略中扩容、限流与降级无疑是最为有效的“三板斧”。它们不仅确保了在用户访问激增时系统的稳定性和响应速度也充分考虑了成本效益最大化了资源的利用效率。扩容提供了处理高峰流量的必要硬件支持限流则确保了系统不会因超载而崩溃而降级则在必要时牺牲部分服务质量保证了核心功能的正常运行。

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

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

相关文章

正规营销型网站培训中心营销网站建设网站开发

python项目导入eclipse的步骤: 1、首先,打开Eclipse集成开发程序,在菜单栏上点击“File(F)”,在弹出来的列表中点击“导入(I)...”。 2、在弹出来的“导入”窗口中,选择“常规”选项中的“现有…

送给做网站的锦旗语杭州最专业的seo公司

在数字媒体时代,视频已经成为信息传递的主要方式之一。那如何让视频在众多内容中脱颖而出,吸引更多的观众呢?除了内容本身的质量外,视频的封面也是吸引的关键因素之一。下面一起看云炫AI智剪如何通过视频剪辑方法从视频中提取封面…

哪里有手机网站建设公司网站建网站建设seo帮帮您

解析 一直在路径可逆上做功夫,跑偏了。 题目可以转化为一个模型:给出一张无向图,每次可以移动到未移动过的点上,不能移动者判负。 这个的做法就是判断是否完美匹配,完美匹配则后手必胜,否则先手必胜。 …

ae模板下载网站推荐企业网站如何设计网页

转载自 jar包天天见,可是你知道它的运行机制吗 今天介绍两个大家每天都在用但是却很少去了解它的知识点:spi 和 jar 运行机制,废话不多说,开始正题。 spi spi 是 Java 提供的一套用来被第三方实现或者扩展的 API ,…

泉州人才网网站seo诊断分析和优化方案

很多去意大利留学的学生会选择去米兰大学留学,那么留学米兰大学需要了解哪些重要事项呢?跟着出国留学网来看看吧!欢迎阅读。意大利留学米兰大学解析院校基本信息欧洲排名7所在省州伦巴第大区所在城市Milano学校性质公立建校年代1923年学校人数60406人官方…

网站建设维护天津网站优化怎么样

Exception: Gradle task assembleDebug failed with exit code 1 解决方案: 1.讲当前文件的distributionUrl值改为 https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip

知名网站制作全包建个人免费网站用哪个

据佳能官方透露,佳能RF 1.4、RF 2增倍镜与RF 100-500mm F4.5-7.1 L IS USM镜头并不完全兼容。在安装使用两款增倍镜时,用户需将RF 100-500mm镜头变焦环的变焦位置移动到超过300mm的远摄区域。而在搭配增倍镜后,镜头变焦范围将限定在300-500mm…

东南亚cod建站工具网站建设资格预审公告

1、低级语言和高级语言 计算机指令程序:0、1 组成的机器指令序列。特点:效率低、可读性差、难以维护。 汇编指令:用常用的符号代替0、1 序列来 表示机器指令,例如用ADD表示加法。 高级语言:面向对象设计的各类应用的程…

营销型网站制作的方法wordpress网站缩

目录 使用编辑器脚本注意函数解释信息调试方法键盘获取方法脚本练习 最近发现常用键盘的上下左右箭头去操作输入输出问题感觉很不是滋味,不像Linux那样,有vim的使用,就想着有没有什么方法更快捷,更方便的去使用电脑键盘&#xff0…

做网站放到百度上需要什么wordpress搭建拒绝访问

文章目录 前言双变量数据分类型数据对分类型数据--二维表分类对分类--复式条形图分类对数值--并列箱线图 数值型数据对数值型数据散点图相关系数 练习 前言 上一篇文章介绍的是单变量数据,本篇将介绍双变量数据。 双变量数据 描述分类数据对分类数据的描述方法&am…

深圳横岗做网站的h5网站后台管理模板

联想一键恢复系统教程?下面我们来看一看吧。 联想不同类型的电脑进入一键恢复界面的方法不一,台式机一体机就在电脑开机出现联想logo界面时按下FnF2组合键。 联想一键恢复系统教程 笔记本则寻找一键恢复按键,在电脑电源关闭的情况下按住几秒钟即可进…

中英文双语的网站怎么建设php个人网站简洁

找零 Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币&#xff0c;以及面值1024元的纸币。 现在小Y使用1024元的纸币购买了一件价值为N(0 < N≤1024)的商品&#xff0c;请问最少他会收到多少硬币&#xff1f; 思路 运用if语句进行判断分类 代码实现 int main() {…

商务网站建设的可行性分析包括门户网站个人可以做吗

网站权重与排名浅谈  网站权重定义&#xff1a;搜索引擎给网站总体赋予一定的权威值&#xff08;现今这个是一个没有确切的数据&#xff09;&#xff0c;对网站总体权威的评估或者评价&#xff0c;一个网站权重越高&#xff0c;在搜索引擎所占的份量越大&#xff0c;&#xf…

做视频网站视频文件都存放在哪云匠网app

最近看了一个Thread类&#xff08;忘记在哪里看的了&#xff09;&#xff0c;感觉不错。 创建线程时线程对应的函数必须是类的静态成员&#xff0c;由于静态成员无法访问类的非静态成员&#xff0c;我从前都是把对象的指针作为参数传递给线程函数来避免这个问题&#xff0c;但是…

网站建设服务详细解读网站当前位置 样式

漏洞简介 某电子文档安全管理系统存在任意用户登录漏洞&#xff0c;攻击者可以通过用户名获取对应的cookie&#xff0c;登录后台。 资产测绘 Hunter语法&#xff1a;web.icon“9fd216c3e694850445607451fe3b3568” 漏洞复现 获取Cookie POST /CDGServer3/LinkFilterServi…

做营销网站建设价格公司官网如何更新网站

Mac os 上面不支持apt-get install ,但是有个 brew install可以代替。 Homebrew是Mac OS的包管理器&#xff0c;可以方便地安装各种需要的软件。 1.1 安装Homebrew 如果没有安装Homebrew&#xff0c;需要在终端输入以下命令进行安装&#xff1a; /usr/bin/ruby -e "$(…

网站建设 教材制作网站需要什么语言

全站Ajax后退有两种方法&#xff0c;浏览器后退按钮加入历史链接。其中一种是常规的Ajax后退&#xff0c;这种后退是带有ajax效果的&#xff0c;要重新请求历史链接页面。另一种是将历史数据保存&#xff0c;后退时取出缓存的数据即可。后者比前者效率要高&#xff0c;所以速度…

亚圣信息科技做网站怎么样九九电视剧免费观看完整版

博主最近换了台新电脑&#xff0c;环境得从零开始配置&#xff0c;所以以下是博主从一台纯净机中配置环境&#xff0c;绝对的小白教程&#xff0c;大家第一次安装完全可以参考我的过程&#xff0c;闲话少说&#xff0c;直接开始&#xff01;&#xff01;&#xff01; 接下来介绍…

贵州企业展示型网站建设wordpress思维导图

点击蓝字关注我们1、#pragma once有什么作用&#xff1f;为了避免同一个头文件被包含&#xff08;include&#xff09;多次&#xff0c;C/C中有两种宏实现方式&#xff1a;一种是#ifndef方式&#xff1b;另一种是#pragma once方式。在能够支持这两种方式的编译器上&#xff0c;…

新开传奇网站刚开一秒第一区做门户网站的市场价格

学过面向对象语言的同学一定都知道String类&#xff0c;一定知道这个类对字符串的操作是多麽的方便&#xff0c;但是c语言中是没有这个类&#xff0c;甚至没有类的概念&#xff0c;但是glib帮我们做的这个“类” GString 除了使用gchar *进行字符串处理以外&#xff0c;Glib还…