当前位置: 首页 > news >正文

快速了解高并发解决方案

对《高并发的哲学原理》的个人总结,原书地址如下    https://pphc.lvwenhan.com/

本书的核心思想就是拆分,服务细化拆分+多资源并行。

通用设计方法 

例子:每秒100万次http请求

        通过架构解决性能问题,在面对并发需求时,在架构上进行优化最为简单,并且对系统稳定性影响最低,也是最容易获得收益的方法。架构优化可通过拿其他资源来交换性能,即空间换时间。

       通过以下方案逐步将系统性能上限的100 qps提升到100万qps。

  • 动静资源分开部署

        是部分场景下收益最大的一步,可以将90%的流量压力转移出去。

        Apache和Nginx的区别:nginx处理请求是异步非阻塞的,apache是阻塞型的。Nginx处理大并发静态请求效率高于其他软件,可作为负载均衡服务器,可承受3万以上并发连接数,是Apache的10倍。4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,占用3GB以上内存,Nginx在3万并发连接下,消耗不到2GB内存。

  • 使用云服务

        如果把静态资源交给云服务商的CDN来承载,还可以获得90%的CPU节省。CDN流量费比云主机的流量费更便宜。

                                

  • 数据库独立部署  

         如果使用了nginx承载全部静态资源,云主机还是扛不住流量就需要增加数据库服务器。如果后端代码和数据库部署在同一台机器上是“灾难架构”,出于成本考虑,大多数低流量管理系统都会放在同一台机器上。

        系统承受能力稍微加大,会面临以下局面:

  1. cpu耗尽导致mysql相应变慢
  2. 代码需更长时间等待,虽不耗cpu资源,却内存占用加大
  3. 内存占用导致innnodb缓存回收,降低了mysql运行速度
  4. 最终形成“内卷”和“踩踏”,系统性能急剧下降,服务可能完全崩溃

        MYSQL单独部署

        将mysql和后端代码进行隔离,数据库的性能就能达到可观的水平。一台1核2G的mysql服务器能够达到200qps,足以支撑100万浏览量的小网站

                        

                                                                                                                                                                                        未完待续

http://www.lryc.cn/news/438399.html

相关文章:

  • SpringBoot框架下的房产销售系统设计与实现
  • 基于RFID的门禁系统的设计(论文+源码)
  • 湖仓一体-Paimon篇-简介
  • React Native 0.76版本发布
  • yolo自动化项目实例解析(一)日志格式输出、并发异步多线程、websocket、循环截图、yolo推理、3d寻路
  • 获取无人机经纬度是否在指定禁飞区内
  • 解读:以RTC为基,AI为脑的“超拟人”AI实时互动解决方案
  • 软件测试学习笔记丨Postman基础使用
  • HTML5+CSS3面试题:(第一天)
  • 微信小程序中的模块化、组件化开发:完整指南
  • 9.第二阶段x86游戏实战2-初识易语言
  • Cortex-A7:__disable_irq和GIC_DisableIRQ、__enable_irq和GIC_EnableIRQ的区别(1)API介绍
  • MATLAB在嵌入式系统设计中的最佳实践
  • wpf 使用Oxyplot 库制作图表示例
  • CSS3中的@media查询
  • fly专享
  • 初识Linux · 进程(3)
  • 【spring】spring bean对象生命周期,spring容器如何管理bean,spring容器的名称是叫什么
  • 基于51单片机的电饭锅控制系统proteus仿真
  • 创建dataSource错误
  • 为解决bypy大文件上传报错—获取百度云文件直链并使用Aria2上传文件至服务器
  • 53.9k star 提升命令行效率的模糊搜索神器--fzf
  • 项目需求 | MySQL增量备份与恢复的完整操作指南
  • 判断当前环境是否为docker容器下
  • 深入理解FastAPI中的root_path:提升API部署灵活性的关键配置
  • QLORA:高效微调量化大型语言模型
  • CesiumJS+SuperMap3D.js混用实现可视域分析 S3M图层加载 裁剪区域绘制
  • Fish-Speech 部署安装指南
  • Excel 国产化替换新方案
  • 在职研生活学习--20240908