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

【分布式系统】聊聊高性能设计

每个程序员都应该知道的数字

在这里插入图片描述

高性能

对于以上的数字,其实每个程序员都应该了解,因为只有了解这些基本的数字,才能知道对于CPU、内存、磁盘、网络之间数据读写的时间。1000ms = 1S。毫秒->微秒->纳秒-秒->分钟
为什么高性能如此重要的呢,在架构设计中,高性能、高可用、高并发是三高问题。其实背后对应的就是提供系统稳定性的前提下,系统可以更快速的处理用户请求。

对应于高性能来说,最之间体现的就是响应时间、并发、吞吐量。
这个响应时间,其实就是用户发起请求到最后返回请求到总耗时。
并发是同一时间内,比如1分钟100个用户请求。1S中10个用户请求。
吞吐量描述的是系统一定时间内可以处理请求的数量。一般通过TPS、QPS进行衡量。(TPS倾向于写操作、QPT倾向于读操作)。

解决方案

对于高性能架构层面,一般是数据库(读写分离、分库分表)、缓存、异步处理、边缘计算、集群模式。
而除了架构层面进行设计之外,其实还包含基础层、中间件层、数据层、应用层的优化。
其实就是性能优化。

  • 基础层
    • 系统配置 (CPU、内存、网络、磁盘)配置升级
    • 操作系统机制
      • 零拷贝
      • 多路复用
      • 序列化
  • 中间件层
    • Kafka、Redis 集群模式、副本机制
  • 数据层
    • 数据库 (读写分离、分库分表、索引优化、存储引擎、SQL优化、数据库连接池等)
  • 应用层
    • 编码层面、多线程并发、JVM 、批处理、高效率算法

一个总体的思路就是,先找到性能的瓶颈点,然后在在根据瓶颈点进行优化。大多数的时候,其实都在编码层面。

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

相关文章:

  • 自动驾驶数据集汇总
  • 面向对象的基本原则
  • C语言开发基础知识(一)
  • ​API网关类型与区别​
  • linux:nginx网站升级至http2
  • Flutter:屏幕适配
  • 中科亿海微ROM使用
  • Python接口自动化测试之UnitTest详解
  • python——案例17:判断某年是否是闰年
  • allure测试报告
  • Vue 路由懒加载
  • 软件设计师(七)面向对象技术
  • Qt中将信号封装在一个继承类中的方法
  • Docker介绍
  • C++红黑树
  • LangChain与大模型的学习ing
  • Go把Map转成对象
  • Java-网络编程
  • [数据集][目标检测]道路坑洼目标检测数据集VOC格式1510张2类别
  • 全网最详细,Pytest自动化测试框架-Fixture固件实战,你要的都有...
  • React 入门学习
  • VMware vCenter 6.5 断电后无法启动修复方案
  • c++ STL--算法,迭代器,容器适配器,仿函数
  • springcloud3 bus+springconfig 实现配置文件的动态刷新(了解)
  • SpringMVC的架构有什么优势?——视图与模型(二)
  • Vue中实现图片懒加载简单说明
  • zookeeper案例
  • 项目中使用git vscode GitHubDesktopSetup-x64
  • 【Linux操作系统】文件描述符fd
  • 【RocketMQ入门-安装部署与Java API测试】