当前位置:首页 > 科技  > 软件

互联网高并发设计的手段:架构、算法、代码

来源: 责编: 时间:2023-11-01 09:19:21 222观看
导读性能优化目标1、缩短响应时间2、提高并发数(增加吞吐量)3、让系统处于合理状态图片性能优化手段1、空间换时间系统时间是瓶颈: 缓存复用计算结果,降低时间开销,因为cpu时间较内存容量更加昂贵。2、时间换空间 数据大小

性能优化目标

1、缩短响应时间Z8128资讯网——每日最新资讯28at.com

2、提高并发数(增加吞吐量)Z8128资讯网——每日最新资讯28at.com

3、让系统处于合理状态Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

性能优化手段

1、空间换时间

系统时间是瓶颈: 缓存复用计算结果,降低时间开销,因为cpu时间较内存容量更加昂贵。Z8128资讯网——每日最新资讯28at.com

2、时间换空间   

  • 数据大小是瓶颈
  • 网络传输是瓶颈,使用系统时间换取传输的空间,使用HTTP的gzip压缩算法    
  • app的请求分类接口,使用版本号判断哪些数据更新,只下载更新的数据

Z8128资讯网——每日最新资讯28at.com

3、找到系统瓶颈

  • 分析系统的业务流程,找到关键路径并分解优化
  • 调用了多少RPC接口,载入多少数据,是用什么算法,非核心流程是否异步化。

性能优化层次

1、架构设计层次

如何拆分系统 如何使用部分系统整体负载更加均衡   充分发挥硬件设施性能优势  减少系统内部开销等Z8128资讯网——每日最新资讯28at.com

2、算法逻辑层次

关注算法选择是否高效,算法逻辑优化,空间时间优化任务执行吃力,使用无锁数据结构。Z8128资讯网——每日最新资讯28at.com

空间换时间:ThreadLocalZ8128资讯网——每日最新资讯28at.com

时间换空间:采用压缩算法压缩数据,更复杂的逻辑减少数据传输。Z8128资讯网——每日最新资讯28at.com

3、代码优化层次

关注代码细节优化,代码实现是否合理,是否创建了过多的对象,循环遍历是否高效,cache使用是否合理 Z8128资讯网——每日最新资讯28at.com

优化层次:从整理到细节,从全局角度到局部视角。Z8128资讯网——每日最新资讯28at.com

代码优化层次(1)Z8128资讯网——每日最新资讯28at.com

  • 循环遍历是否合理高效,不要在循环里调RPC接口,传输分布式缓存 执行SQL等
  • 先调用批量接口组装好数据,再循环处理
  • 代码逻辑避免生成过多的对象和无效对象
  • 输出Log时候的log级别判断  避免new无效对象
  • ArrayList、HashMap初始容量设置是否合理
  • 对数据对象是否合理重用 比如RPC查到的数据能复用则必须复用,根据数据访问特性选择合适数据结构,比如读多写少考虑  CopyOrWriteArrayList(写时copy副本),会否正确初始化数据,有些全局共享的数据,饿汉式模式,在用户使用之前先初始化好。

Z8128资讯网——每日最新资讯28at.com

代码优化层次(2)Z8128资讯网——每日最新资讯28at.com

  • CPU Cache结 构
  • 速度越来越高:内存 - >L3->L2->L1多级缓存
  • 本质上内存是一个大的一维数组,二维数组在内存中按行排列,先存放a[0]行,再存放a[1]行
  • 第一种遍历方式,是行遍历,先遍历完一行再遍历第二行,符合局部性原理Cache Hit  (缓存命中率高)
  • 第二种遍历方式,是列遍历,遍历完第一列遍历第二列,由于下一列和 上 一 列的数组元素在内存中并不是连续的,很可能导致Cache  Miss ( 缓 存 未 命 中 ) , CPU 需要去内存载入数据,速度较CPU    L1Cache的速度降低 了很多(主存100ns,L1  cache  0.5ns)

Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

数据优化层次

select count(*)from table where add  time<"2017- 11-0623:59:59"  and  status=0  add  count in(1,2) ORDER BY id ASC;

Z8128资讯网——每日最新资讯28at.com

代码逻辑要适应数据变化的场景Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

算法优化逻辑层次

●用更高效的算法替换现有算法,而不改变其接口Z8128资讯网——每日最新资讯28at.com

● 增量式算法,复用之前的计算结果,比如一个报表服务,要从全量数据中生成报表数据量很大,但是每次增量的数据较少,则可以考虑只计算增量数据和之前计算结果合并,这样处理的数据量就小很多Z8128资讯网——每日最新资讯28at.com

● 并发和锁的优化,读多写少的业务场景下,基于CAS的LockFree比mutex 性能更好Z8128资讯网——每日最新资讯28at.com

● 当系统时间是瓶颈,采取空间换时间逻辑算法,分配更多空间节省系统时间Z8128资讯网——每日最新资讯28at.com

● 缓存复用计算结果,降低时间开销, CPU时间较内存容量更加昂贵Z8128资讯网——每日最新资讯28at.com

● 当系统空间容量是瓶颈,采取时间换空间算法策略Z8128资讯网——每日最新资讯28at.com

● 网络传输是瓶颈,使用系统时间换取空间的压缩, HTTP的gzip 压缩算法Z8128资讯网——每日最新资讯28at.com

● APP的请求分类接口,使用版本号判断哪些数据更新,只下载更新的数据,使用更多的代码逻辑处理更细粒 度的数据Z8128资讯网——每日最新资讯28at.com

● 并行执行,比如一段逻辑调用了多个RPC接口,而这些接口之间并没有数据依赖,则可以考虑并行调用,降低响 应时间Z8128资讯网——每日最新资讯28at.com

● 异步执行,分析业务流程中的主次流程,把次要流程拆分出来异步执行,更进一步可以拆分到单独的模块去执行, 比如使用消息队列,彻底和核心流程解耦,提高核心流程的稳定性以及降低响应时间Z8128资讯网——每日最新资讯28at.com

架构层次优化

● 系统微服务化Z8128资讯网——每日最新资讯28at.com

● 无状态化设计,动态水平弹性扩展Z8128资讯网——每日最新资讯28at.com

● 调用链路梳理,热点数据尽量靠近用户Z8128资讯网——每日最新资讯28at.com

● 分布式Cache 、 多级多类型缓存Z8128资讯网——每日最新资讯28at.com

● 提前拒绝,保证柔性可用Z8128资讯网——每日最新资讯28at.com

● 容量规划Z8128资讯网——每日最新资讯28at.com

● 分库分表,读写分离,数据分片Z8128资讯网——每日最新资讯28at.com

案例:Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

Feed流系统分级缓存

读多写少、冷热数据明显,热点数据缓存到调用链路更靠近用户的地方Z8128资讯网——每日最新资讯28at.com

● L1缓存容量小负责抗最热点的数据, L2缓存考虑目标是容量,缓存更大范围的数据(一般用户的timeline), 高热点,数据单独缓存,比如设置白名单,大V 的用户数据放在L1缓存Z8128资讯网——每日最新资讯28at.com

● feed(关注的feed 、topic 的feed,一些运营的feed),前几页的访问比例,前三页占了90%+,针对这种业务特性,把 前面几页数据作为热点数据提到L1 cacheZ8128资讯网——每日最新资讯28at.com

Feed系统消息发布Feed系统消息发布Z8128资讯网——每日最新资讯28at.com


Z8128资讯网——每日最新资讯28at.com

写扩散 (PUSH)Z8128资讯网——每日最新资讯28at.com

● 推送策略:拆分数据并行推,活跃用户先推,非活跃用户慢慢推Z8128资讯网——每日最新资讯28at.com

● 有 1w个用户关注,发了一个feed,拆分成100份,每份100个并行推Z8128资讯网——每日最新资讯28at.com

● 1w个用户里活跃的可能有2000个,活跃用户先推,非活跃用户慢慢推,保证活跃用户体验,非活跃用户推 了很大概率也不看Z8128资讯网——每日最新资讯28at.com

读扩散(PULL)Z8128资讯网——每日最新资讯28at.com

图片图片Z8128资讯网——每日最新资讯28at.com

Z8128资讯网——每日最新资讯28at.com

Feed系统存储选型Z8128资讯网——每日最新资讯28at.com

图片 图片 Z8128资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-16297-0.html互联网高并发设计的手段:架构、算法、代码

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C++“中年危机”有救了!C++之父新动作!

下一篇: 基于Python+Django+协同过滤推荐算法实现的【电影推荐与管理系统】

标签:
  • 热门焦点
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 让我们一起聊聊文件的操作

    让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 在线图片编辑器,支持PSD解析、AI抠图等

    在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 梁柱接棒两年,腾讯音乐闯出新路子

    梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • “又被陈思诚骗了”

    “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • iQOO 11S新品发布会

    iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
Top