高并发系统设计-系统的“三高“目标

news2024/11/23 8:15:06

目录

一、高并发

1.高并发相关指标

2.如何提高并发能力

二、高并发的目标

1.高性能

2.高可用

3.高扩展


一、高并发

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

1.高并发相关指标

  1. QPS (Queries Per Second) / RPS (Requests Per Second): 每秒查询/请求数,表示服务器在一秒内能够处理的请求数量。这是衡量系统处理能力的一个重要指标,适用于所有类型的请求-响应系统。

  2. TPS (Transactions Per Second): 每秒事务数,特指系统每秒能处理的事务数量,通常用于数据库操作或者业务逻辑中一系列操作的集合。

  3. 响应时间 (Response Time): 从客户端发出请求到接收到响应的总时间。它直接影响用户体验,响应时间越短,用户体验越好。

  4. 吞吐量 (Throughput): 单位时间内系统处理的请求数量或完成的任务数量(QPS和TPS都可视为吞吐量的一种特定形式)。吞吐量可以用来衡量系统的处理能力,但需要注意区分是瞬时吞吐量还是持续吞吐量。

  5. 并发用户数: 系统在同一时间内能够同时处理的用户数量,是评估系统并发处理能力的重要依据。高并发用户数意味着系统需要处理更多的并发请求。

  6. 错误率 (Error Rate): 在特定时间段内失败请求占总请求的比例。在高并发场景下,维持低错误率对于保证服务稳定性至关重要。

  7. 饱和度 (Saturation): 表示系统接近其最大处理能力的程度。当系统达到饱和状态时,再增加负载可能会导致响应时间显著增加或错误率上升。

  8. 带宽 (Bandwidth): 网络传输速率,单位时间内能够传输的数据量。在高并发场景下,足够的带宽是确保数据流畅传输的基础。

  9. PV (Page View) - 页面浏览量: PV是指网站被访问的页面总数。每当用户浏览一次网页,无论是否是同一个人或同一个IP地址,都会记录为一次PV。因此,如果一个用户在网站上浏览了多个页面,这将增加多个PV。PV是评价网站活跃度的重要指标,反映了网站内容被浏览的次数。  

  10. UV (Unique Visitor) - 独立访客: UV是指在一定统计周期内访问网站的独立用户数。通常通过 cookies 或者设备标识符来识别唯一的访问者,即便同一用户使用不同的设备或浏览器访问,也会被计为多个UV。UV更能准确反映实际的用户数量,是衡量网站用户基础规模的指标。

  11. IP (Internet Protocol) - IP访问: 基于IP地址统计的访问量,即来自不同IP地址的访问次数。IP作为统计标准在现代互联网分析中已较少直接应用。

2.如何提高并发能力

  • 垂直扩展(Scale Up)
  1. 增强单机硬件性能(优先):例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G。
  2. 提升单机架构性能:例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间。
  3. 总结:管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。
  • 水平扩展(Scale Out)
  1. 只要增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,难点在于:如何在架构各层进行可水平扩展的设计。

二、高并发的目标

1.高性能

  1. 简单的说,高性能(High Performance)就是指程序处理速度快,所占内存少,cpu占用率低。
  2. 高并发和高性能是紧密相关的,提高应用的性能,是肯定可以提高系统的并发能力的。
  3. 应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。
  4. 增加服务器资源(CPU、内存、服务器数量),绝大部分时候是可以提高应用的并发能力和性能 (前提是应用能够支持多任务并行计算,多服务器分布式计算才行),但也是要避免其中的一些问题,才可以更好的更有效率的利用服务器资源。

提高性能的注意事项

  1. 避免因为IO阻塞让CPU闲置,导致CPU的浪费。
  2. 避免多线程间增加锁来保证同步,导致并行系统串行化。
  3. 免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上。
  4. 避免分布式系统中多服务器的关联,比如:依赖同一个mysql,程序逻辑中使用分布式锁,导致瓶颈在mysql,分布式又变成串行化运算。

2.高可用

高可用性(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性(一直都能用)。

高可用性是指系统具有较高的无故障运行能力,可用性 = 平均故障时间 / 系统总运行时间,一般使用几个 9 来描述系统的可用性。 

高可用注意事项

  • 避免单点:使用单个服务器,一旦该服务器意外宕机,将导致服务不可用
  • 使用“集群”,一台服务器挂了,还有其他后备服务器能够顶上

3.高扩展

表示系统的扩展能力,流量高峰时能否在短时间内完成扩容,更平稳地承接峰值流量,比如双11活动、明星离婚等热点事件。

面对突发流量,不可能临时改造架构,最快的方式就是增加机器来线性提高系统的处理能力。

对于业务集群或者基础组件来说,扩展性 = 性能提升比例 / 机器增加比例,理想的扩展能力是:资源增加几倍,性能提升几倍。通常来说,扩展能力要维持在 70%以上。

但是从高并发系统的整体架构角度来看,扩展的目标不仅仅是把服务设计成无状态就行了,因为当流量增加 10 倍,业务服务可以快速扩容 10 倍,但是数据库可能就成为了新的瓶颈。

像 MySQL 这种有状态的存储服务通常是扩展的技术难点,如果架构上没提前做好规划(垂直和水平拆分),就会涉及到大量数据的迁移。

我们需要站在整体架构的角度,而不仅仅是业务服务器的角度来考虑系统的扩展性 。所以说,数据库、缓存、依赖的第三方、负载均衡、交换机带宽等等都是系统扩展时需要考虑的因素。我们要知 道系统并发到了某一个量级之后,哪一个因素会成为我们的瓶颈点,从而针对性地进行扩展。

 

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

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

相关文章

实战6:线性回归电影票房预测-完整代码数据论文-可直接运行

直接看论文: 数据: 数据分析特征分析: 预测结果: 完整代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split

Docker 基础认识

文章目录 概念铺垫(1)概念铺垫(2)概念铺垫 (3)概念铺垫(4)Docker 定义Docker 特点Docker 架构 概念铺垫(1) 虚拟化相关概念 物理机:实际的服务器…

【人工智能Ⅱ】实验7:目标检测算法2

实验7:目标检测算法2 一:实验目的与要求 1:了解一阶段目标检测模型-YOLOv3模型的原理和结构. 2:学习通过YOLOv3模型解决目标检测问题。 二:实验资源 pytorch代码各文件夹内容介绍 1. data_loader.py:能…

【Kali Linux工具篇】wpscan的基本介绍与使用

介绍 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞&#x…

LeetCode 力扣题目:买卖股票的最佳时机 III

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

template——模板进阶(C++)

在之前的文章中,介绍了模板初阶:Cpp_桀桀桀桀桀桀的博客-CSDN博客 在本篇中将会对模板进一步的讲解。本篇中的主要内容为:非类型模板参数、函数模板的特化、类模板的特化(其中包含全特化和偏特化),最后讲解…

什么是数据中心?关于数据中心的这些知识一定要知道

在数字化时代,数据已成为企业最宝贵的资产之一。数据中心,作为支撑海量数据存储、处理和分发的基础设施,其战略地位日益凸显。它们不仅是信息技术的心脏,更是推动现代商业决策、创新和运营的核心引擎。随着云计算、大数据、物联网…

React 第三十章 React 和 Vue 描述页面的区别

面试题:React 和 Vue 是如何描述 UI 界面的?有一些什么样的区别? 标准且浅显的回答: React 中使用的是 JSX,Vue 中使用的是模板来描述界面 前端领域经过长期的发展,目前有两种主流的描述 UI 的方案&#xf…

英语学习笔记12——名词所有格的运用

Whose is this … ? This is my/your/his/her … 这……是谁的?这是我的 / 你的 / 他的 / 她的…… Whose is that … ? That is my/your/his/her … 那……是谁的?那是我的 / 你的 / 他的 / 她的…… 词汇 Vocabulary father n. 爸爸 口语&#xf…

ICode国际青少年编程竞赛- Python-6级训练场-多次递归

ICode国际青少年编程竞赛- Python-6级训练场-多次递归 1、 def recur(n):# 边界条件if n<1:return# 额外动作Dev.turnLeft()Dev.step(n)Dev.turnRight()Dev.step(n)Dev.step(-n)Dev.turnRight()Dev.step(2*n)Dev.turnLeft()Dev.step(n)# 递归调用recur(n-1) recur(4)2、 d…

详解xlswriter 操作Excel的高级应用conditional_format

在文章详解xlsxwriter 操作Excel的常用API-CSDN博客 我们介绍了xlswriter 基础api的使用情况&#xff0c;在实际工作中我们经常会遇到下面的需求&#xff0c;cell满足某某条件时&#xff0c;进行对应的格式化处理。这时候我们可以使用conditional_format的函数&#xff0c;他允…

Softing dataFEED OPC Suite通过OPC UA标准加速数字化转型

数字化转型的关键在于成功将信息技术&#xff08;IT&#xff09;与运营技术&#xff08;OT&#xff09;相融合&#xff0c;例如将商业应用程序和服务器与可编程逻辑控制器&#xff08;PLC&#xff09;和设备传感器相融合&#xff0c;为此&#xff0c;各种设备和系统必须能够相互…

ERP系统为何适合电子元件行业?

在快速发展的电子元件行业中&#xff0c;高效、精确的管理系统对于企业的成功至关重要。IC设计ERP系统&#xff0c;作为一套高度集成的企业管理解决方案&#xff0c;其独特的特性和功能使其特别适用于电子元件行业。 首先&#xff0c;ERP系统(Enterprise Resource Planning&…

钽酸锂集成光子芯片:引领光电集成新纪元

在信息技术飞速发展的今天&#xff0c;光电集成技术已成为推动全球集成电路产业持续创新的重要力量。随着全球集成电路产业发展步入“后摩尔时代”&#xff0c;芯片性能提升的难度和成本不断攀升&#xff0c;业界急需寻找新的技术突破口。在这一背景下&#xff0c;中国科学院上…

【深度学习目标检测】二十六、基于深度学习的垃圾检测系统-含数据集、GUI和源码(python,yolov8)

设计垃圾检测系统的意义在于多个方面&#xff0c;这些方面不仅关乎环境保护和城市管理&#xff0c;还涉及到技术进步和社会效益。以下是设计垃圾检测系统的主要意义&#xff1a; 环境保护与资源回收&#xff1a; 垃圾检测系统能够有效地识别不同种类的垃圾&#xff0c;帮助人们…

江苏省人大财经委主任委员谢志成一行莅临聚合数据走访调研

4月18日&#xff0c;江苏省人大财经委主任委员谢志成莅临聚合数据展开考察调研。省人大财经委副主任委员&#xff08;正厅&#xff09;周毅、省人大常委会办公厅一级巡视员吕小鹏、外事委委员赵正驰、省数据局副局长王万军&#xff1b;苏州市人大常委会副秘书长毛元龙、数据局副…

快手二面:你有没有调用过第三方接口?碰到过哪些坑?

在我们的业务开发中&#xff0c;调用第三方接口已经成为常态&#xff0c;比如对接一些ERP系统、WMS系统、一些数据服务系统等&#xff0c;它极大地扩展了我们应用的功能和服务范围。然而&#xff0c;实际对接过程中&#xff0c;我们往往会在这一环节遇到各种意想不到的问题&…

【自动驾驶技术栈学习】1-硬件《大话自动驾驶》| 综述要点总结 by.Akaxi

----------------------------------------------------------------------------------------------------------------- 致谢&#xff1a;感谢十一号线人老师的《大话自动驾驶》书籍&#xff0c;收获颇丰 链接&#xff1a;大话自动驾驶 (豆瓣) (douban.com) -------------…

【科学研究】 女性主义:网络中的性别歧视现象

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…

##20 实现图像风格迁移:使用PyTorch深入学习的艺术之旅

文章目录 前言项目概述准备阶段图像处理模型选择风格和内容特征提取风格迁移算法优化过程结果展示完整代码与实验项目结论参考文献 前言 图像风格迁移是一种使一幅图像呈现另一幅画作风格的技术&#xff0c;通过深度学习&#xff0c;我们能够捕捉到内容图像的结构信息和风格图…