制作网站公司选 择乐云seo专家/seo教育培训机构
前言
马上又要618了,每年到了这个时候,商家就开始促销,价格低会吸引来超多用户,对系统来说就是更多的流量,技术上如何确保网站稳定运行,且不被超卖,同时还要让用户有个良好的购物体验。
12306网站在最开始的时候,经常出现系统瘫痪,而如今也已经能够支持同时上千万人同时抢票且不受影响。
这些都离不开高并发技术,以及根据业务进行架构设计,应对流量的冲击。
今天我们一起来谈谈这些与架构设计有关的技术
文章目录
- 前言
- 一. 高并发
- 1.1 什么是高并发
- 1.2 高并发有什么关键指标
- 二. 高可用
- 2.1 高可用的衡量指标
- 2.2 服务器的可用性数字化的衡量指标
- 总结
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. 高并发
1.1 什么是高并发
高并发,通常是指通过设计保证系统能够同时处理很多请求,也就是在同一个时间点,有很多请求同时访问同一个接口。
高并发是一种系统在运行过程中遭受的“短时间内大流量冲击” 的情况,如果处理不好,就很容易造成系统吞吐量下降,响应变慢,从而影响用户体验,甚至可能造成系统无法提供服务的情况。
这时候我们通常需要优化系统,硬件,网络,应用,数据库等来达到高并发要求。
1.2 高并发有什么关键指标
-
响应时间
响应时间是衡量系统性能的重要指标之一,它表示系统从接收请求到向用户返回响应所需要的时间。
响应时间是用户感知系统性能的关键因素之一,因为它直接影响到用户满意度和用户转化率。当一个用户发出请求时,如果系统不能在很短的时间内提供响应,则用户可能会感到不耐烦,并可能在等待时间过长后离开网站、应用或服务
从用户角度来说,响应时间越长,用户体验感越差,响应时间越短,用户体验越好,留存率也越好。
从系统角度来说: 响应时间决定着系统的性能,响应时间越短,系统性能越高,也就能更好的处理业务。
- 吞吐量
吞吐量是单位时间内系统所处理的用户请求数。
对互联网应用来说,吞吐量能够反映系统的负载能力。
公式1: 吞吐量=并发数/平均响应时间
公式2: 吞吐量=请求总数/总时长
- 每秒钟请求数(QPS)
QPS指的是服务器在一秒内共处理了多少个请求,主要用来表示读的请求。
依据二八原则,80%的流量是在20%的时间里产生的,比如现在有 5000000 个请求,预估白天的QPS=(5000000 0.8)/ 1260600.2 =462
然后分析业务得到最高QPS可能是平均的两倍,当前的系统峰值就是462*2=924
预估出QPS后,再根据峰值 QPS/单台机器可承受的qps, 算出需要多少台服务器。
机器数== 峰值QPS/ 单台机器最高可承受的QPS
- 每秒事务数TPS
举例来说,如果你在银行办理转账业务,每一次的转账都是一个事务,那么银行的TPS就是指每秒内可以处理多少笔转账业务。
TPS通常用于评估系统的性能和负载能力,同样适用于高负载场景下的互联网服务提供商。例如,电商平台可以通过监控TPS来判断系统的稳定性和用户满意度。
值得注意的是,虽然QPS和TPS都是用来衡量系统的吞吐能力,但由于事务通常比请求需要处理更多数据,并且需要更长的处理时间,因此,在大多数情况下,TPS 的值要比 QPS 小。
TPS主要包含以下三个过程:
- 客户端请求服务器端
- 在服务器端内部进行业务逻辑处理
- 服务器端响应客户端。
当一个用户访问一个完整页面时,请求+响应的整个过程就是一个TPS。
这一次完整的请求可能产生多次对服务器的请求,这些请求计入QPS
假设访问一个页面时候会请求服务器3次,这样的一次访问会产生1个TPS和3个QPS
-
访问量PV
pv是页面浏览量,用户每对网站中的一个网页访问1次均被记录1次,用户对同一个页面的多次访问被累计记录,PV是评价网站流量的最常用指标。 -
独立访客 UV
独立访客数记录标准一般为"一天",即一天内如果某访客从同一个IP地址来访问某网站n次的话,访问次数计作n, 独立访客数则计作1。
同一天内同一个IP多次访问同一个网站只记为1个。
二. 高可用
高可用性是指一个系统经过专门的设计后具备的减少停工时间并保持提供服务的高度可用性。该特性是衡量系统提供服务能力的一个特征,也是对系统进行设计时需要考虑的一个重要因素。
对于分布式数据库系统而言,“三高一易”(高可用、高可靠、高性能、易用性)几乎囊括了所有重要的特性。而随着互联网需求和技术的发展,高可用性被提到一个新的高度。CAP理论认为,A(可用性)应当被更加重视
2.1 高可用的衡量指标
- 可用性:系统必须能够在任何时候都处于正常运行状态,即便是在故障发生的情况下也应如此。
- 可靠性:系统必须能够保证每个用户请求都能够得到可靠的响应,而不是出现错误或系统崩溃等异常情况。
- 可恢复性:系统必须能够快速恢复到正常运行状态,以最小化业务中断和数据损失。
- 可扩展性:系统必须能够快速、有效地适应业务增长和变化,以满足不断变化的需求。
- 负载均衡:系统必须具备负载均衡的能力,能够平衡工作负载,充分利用所有可用资源,确保高性能和稳定性。
- 安全性:系统必须能够通过强大的身份验证、访问控制和数据加密等多重安全措施,保护数据和应用程序免受恶意攻击和数据泄露。
- 性能:系统必须能够处理和响应大量的用户请求,保持高性能和低延迟。
2.2 服务器的可用性数字化的衡量指标
- SLA(Service Level Agreement):服务等级协议是指服务提供商与客户之间达成的关于服务水平的约定,通常包括服务的可用性、响应时间、故障修复时间等。
- SLO(service level objective)服务等级目标,指的是设计可用性,其意思即为设计该产品时期望达到的可用性目标。
- MTBF(Mean Time Between Failures):平均故障间隔时间,是指系统正常工作期间,平均多长时间才会发生一次故障。
- MTTR(Mean Time To Repair):平均修复时间,是指当系统出现故障时,平均需要多长时间才能进行修复。
- MTTF(Mean Time To Failure):平均失效时间,是指系统平均能够稳定运行的时间,即从系统启动或上次故障发生以来到下一次故障发生之间的时间。
- Uptime:系统正常运行时间的百分比,可以通过系统日志或监控工具来计算。
- Response Time:服务响应时间,是指从用户发出请求到系统返回响应之间所需的时间。该指标是用户感受服务性能的重要指标,对于一些需要低延迟响应的应用程序而言尤为重要。
- TPS(Transactions Per Second):每秒事务处理数,是指系统在每秒钟内能够处理的事务数量。该指标通常被用于衡量系统的处理能力和负载能力。
上述指标可以帮助服务提供商评估其服务的可用性和性能,便于提高服务质量和满足客户需求。
我们平常经常看到互联网公司喊口号,我们今年一定要做到3个9、4个9,即99.9%、99.99%,甚至还有5个9,即99.999%。 这些就是服务器的可用性数字化的衡量指标的SLA 服务等级协议。
这么多9是怎么计算的呢?
全年拿365天做计算吧,看看几个9要停机多久时间做能才能达到!
1年 = 365天 = 8760小时
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
从以上看来,全年停机5.26分钟才能做到99.999%,即5个9。依此类推,要达到6个9及更多9,可以说非常难了。
总结
本文主要介绍了高性能架构的理论基础,后续再讲解架构的设计案例。
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
相关文章:

企业级应用高性能可扩展架构设计
前言 马上又要618了,每年到了这个时候,商家就开始促销,价格低会吸引来超多用户,对系统来说就是更多的流量,技术上如何确保网站稳定运行,且不被超卖,同时还要让用户有个良好的购物体验。 12306…...

【安全架构】
概念 安全是产品的属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),简记为CIA。 保密性: 保障信息资产不被未…...

RabbitMq-高级
参考:https://blog.csdn.net/dingd1234/article/details/125032383 1 TTL TTL QUEUE 声明args TTL MESSAGE postmessage中设置 区别:过期消息会直接删除消息,过期队列若配置死信队列会移到死信队列 ps:同时配置两个已小的为准 2…...

iOS App的打包和上架流程
转载:iOS App的打包和上架流程 - 掘金 1. 创建账号 苹果开发者账号几种开发者账号类型 个人开发者账号 费用:99 美元/年(688.00元)协作人数:仅限开发者自己不需要填写公司的邓百氏编码( D-U-N-S Number…...

Net6中遇到的一个很奇葩的问题
先来看一段代码,是控制台应用程序 internal class Program{static void Main(string[] args){Test().Wait();}private static async Task Test(){await Task.Run(() >{Debug.WriteLine("线程内输出");});Debug.WriteLine("线程外输出");}}执…...

2940. 花坛的最小改变次数
Powered by:NEFU AB-IN Link 文章目录 2940. 花坛的最小改变次数题意思路代码 2940. 花坛的最小改变次数 题意 略 思路 首先需要区间查询gcd,想到st表 其次思路,固定左端点,二分右端点,找gcd与区间长度相等的右端点,个…...

安装源代码 QT 4.8.7
在centos7.9.2009 (Core)操作系统上,安装qt 4.8.7 查看centos版本:cat /etc/centos-release 安装g:sudo yum install gcc gcc-c g版本查看(gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)):g -v 先安装…...

PINN学习与实验之拟合sin(x)
首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用? 答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。 2.PINN中物理信息的作用? 答:用于约束MLP反向…...

Java中进制转换的两种方法你知道吗?
目录 十进制转其他进制 其他进制转十进制 实战: A进制转B进制 关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法,该方法…...

Qemu搭建ARM Vexpress开发环境
Qemu搭建ARM Vexpress开发环境 文章目录 Qemu搭建ARM Vexpress开发环境Qemu简介QEMU安装前的准备工作QEMU 安装的两种方式通过网络在线安装源码编译安装源码获取QEMU依赖库安装编译安装 命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型 Ubuntu 双网卡&#x…...

JMM如何实现volatile写/读的内存语义
内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数…...

Smali的使用技巧:快速定位Android应用程序中的关键代码
简述 Smali是一种Android应用程序的Dalvik虚拟机指令集汇编语言,用于编写和修改应用程序的DEX文件。通过编写和修改Smali代码,可以实现对Android应用程序的定制化和逆向分析。Smali语言类似于汇编语言,直接操作Dalvik虚拟机指令集。 Smali代…...

04_两种常见的网页反爬措施及应对方法
一、封禁IP地址反爬 1、应对思路: 理解这种反爬方法的含义:当我们用自己电脑的ip地址短时间,高频率访问某个具有此类反爬设置的网站,这种网站就会把我们的ip地址封禁,一般都是封24小时或者其他时间。解决方案:通过代理ip访问,这种方式只不过就是让你有了重新访问网页的…...

安装docker环境,并制作docker镜像
docker环境安装 进入linux虚机后,安装docker环境,制作docker镜像并运行,进入运行中的容器,查看挂载的日志或报告 1.安装docker sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.使用docker仓库安装…...

MySQL数据库 – node使用
1 MySQL查询对象 2 MySQL查询数组 3 mysql2库介绍使用 4 mysql2预处理语句 5 mysql2连接池使用 6 mysql2的Promi 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句(表现形式是有符号:?)。需…...

JAVA使用HTTP代码示例模板
以下是一个使用Java发送HTTP请求的示例代码: java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpExample { public static void main(String[] args) { try…...

elementui tree 支持虚拟滚动和treeLine (下)
由于我之前没有发布过npm 包,这里还得现学一下。 参考资料: 链接: 如何写一个vue组件发布到npm,包教包会,保姆级教学链接: vue组件发布npm最佳实践 按照上面的步骤,我通过 vue-sfc-rollup 生成了项目,…...

富人父母都教给孩子什么样的财富思维?
1.认清金钱的价值和作用,不要否认或忽视它对生活的影响。 2.提高社交能力,学会与不同的人沟通和合作,扩大人脉和资源。 3.理性消费,让钱在流动中产生效益,而不是囤积或浪费。 4.释放自己的欲望,追求自己想要…...

国内比较火的报表工具测评——Smartbi电子表格软件和Finereport
最近在学习BI软件,因为最近工作中需要开发报表,因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本,增加新的功能模块,或者对现有功能进行增强,提升运行效率。…...

变电所运维云平台在电力系统中的应用
安科瑞虞佳豪 变电所运维云平台可以看做是电力监控系统的网络应用延伸,变电所运维云平台通过互联网,电力运维人员通过手机可以随时随地了解工厂配电系统的运行情况,做到无人值守或者少人值守,同时可以监测用能状况、漏电、线缆异…...

【51单片机】AT24C20数据帧(I2C总线)
🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 小吉先向大家道个歉,因为最近在期末…...

Python内置函数isinstance()函数介绍
Python内置函数isinstance()函数介绍 isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式: isinstance(object, classinfo) 【官方说法https://docs.python.org/zh-cn/3/librar…...

QxRibbon 知:搭建 CMake 构建环境
文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…...

Spring框架-面试题核心概念
目录 1.Spring框架的作用是什么? 2. 什么是DI? 3.什么是AOP? 4.Spring常用注解 5.Spring中的设计模式 6.Spring支持的几种bean的作用域 7.Spring中Bean的生命周期? 8.Spring中的事务管理 9.Spring中的依赖注入方式有几种 10.Sprin…...

Tomcat部署及优化
Tomcat部署及优化 一、Tomcat的介绍1.Tomcat核心组件2.Tomcat 功能组件结构3.Container 结构分析:4.Tomcat处理请求过程 二、Tomcat 部署步骤1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.设置JDK环境变量4.编写一个java 简易的源代码…...

C++/C按照时间命名保存bin文件
背景 在Linux应用编程过程中,使用C或者C语言保存、读取bin文件是比较常见的需求。这里详细记录一下使用C保存bin文件,也可以使用C语言实现。 代码 C/C语言保存bin文件函数,C中也能使用 正确写入返回0,错误返回-1 // C 保存bi…...

面向多告警源,如何构建统一告警管理体系?
本文介绍告警统一管理的最佳实践,以帮助企业更好地处理异构监控系统所带来的挑战和问题。 背景信息 在云原生时代,企业IT基础设施的规模越来越大,越来越多的系统和服务被部署在云环境中。为了监控这些复杂的IT环境,企业通常会选…...

python 面向对象 -- 简单理解版
一、什么是面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。除了Python,Java也是一门面向对象的编程语言。 先来简单的了解下面向对象的一些基本特征。 类(Class): 用来描述具有相…...

SpringMVC 程序开发
✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 什么是 Spring MVCMVC 定义 怎么学 Spring MVCSpring MVC 创建和连接创建 Spring MVC 项目RequestMapping 注解介绍PostMappi…...

使用单片机遇到的几个问题及解决方案1
1.为什么我跟着视频学习的过程中,我没有找到“端口"的选项呢?我甚至没有出现“其他插口”。 想要找到设备管理器最快的方法就是: 首先如果把输入法调为大写形式,然后按下“WINX”,再按“M”就会出现一个设备管理…...