架构修炼-10:高并发设计

一、如何衡量高并发的系统性能

1.吞吐量Throughput:

2.响应延迟Response Delay:

二、性能优化目标

1.缩短响应时间

2.提高系统并发数(提升吞吐量)

3.系统处理合理状态(机器利用率)

随着系统压力增加(X坐标:在线业务人数),

Y坐标:绿色机器利用率,紫色并发数,蓝色:响应时长

响应时间和并发数据在左边线位置达到优化目标,之后利用率60%提升非常缓慢,当超过右侧线是,系统性能急剧下降。

三、性能优化手段

1.空间换时间:当系统处理时间是瓶颈时使用。

例如:增加缓存,复用计算结果,降低时间开销,因为CPU的时间较内存容量而言更加昂贵。

2.时间换空间:当数据大小是瓶颈时使用。

例如:a.网络传输开启gzip压缩,b.页面根据版本号只下载更新数据

3.找到系统瓶颈:分析业务流程,找到关键路径,分解优化

例如:调用了多少RPC接口,载入多少数据,使用什么算法,非核心流程是否异步化,没有依赖逻辑是否并行化

四、性能优化层次

原则:从整体到细节,从全局视角到局部视角

1.架构设计层次优化:如何拆分系统;如何使各个部分负责更加均衡;充分发挥硬件性能优势;减少系统内部开销

a.系统微服务化

垂直拆分:网关层,业务逻辑层,数据访问层,判断实现需要加入MQ改造为异步化系统

水平拆分:先完成服务无状态化改造,进行水平扩展

b.调用链梳理,热点数据靠近用户

c.分布式cache,多级多类型缓存

d.提前拒绝,保证柔性可用

e.容量规划

f.分库分表,读写分离,数据分片

 

2.算法逻辑层次优化

a.关注算法是否高效,逻辑优化,空间时间优化,任务并行,无锁数据结构

b.空间换时间:ThreadLocal

c.时间换空间:采用压缩算法数据,增加逻辑计算,只传输结果减少数据传输

 

3.代码层次优化

a.代码实现逻辑是否合理

b.对象创建多少

c.循环是否高效

d.cache是否复用

e.是否重用计算结果

 

四、实战举例

朋友圈Feed系统

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值