【从零开始学架构-李运华】04|复杂度来源:高性能

复杂度的六个来源之一:高性能

运算性能迅猛发展、软件复杂度发展、硬件存储发展。

用来代替旧技术的新技术才会给软件系统带来复杂度,而用来淘汰旧技术的新技术则不用担心。

 

1.单台计算机

    手工操作->批处理->进程->分时多进程->进程通信->线程(共享进程数据)->互斥锁机制

    进程:操作系统分配资源的最小单位

    线程:操作系统调度的最小单位

    SMP多核处理器方案

    很多开源软件也不一定要用到多进程,例如:Redis

2.多台计算机集群

    2016年双十一支付宝每秒峰值12万笔支付。

    2017年春节微信红包手法红包每秒达到76万个。

    以上规模的业务系统,背后的机器数量都是万台级别的。

想提升性能不仅仅是增加机器,需要配合达到高性能是一个复杂的任务。

① 任务分配

a.需要增加任务分配器:硬件设备F5、软件网络设备LVS、负载均衡软件Nginx,根据性能、成本、可维护性等方面选择。

b.连接和交互并进行管理:连接建立、检测、中断后恢复方案等。

c.分配算法:轮询、加权、负载等。

 

单台任务分配器本身遇到瓶颈也要进行扩展,如图:

d.需要讲用户分配到不同的分配器上:DNS轮询、智能DNS、CDN、GSLB设备等。

e.任务分配器与业务服务器之间变为多对多关系。

上面的业务可以是一个完整的业务,也可以是一个具体的任务,如:Memcache自己的集群算法。

② 任务分解

【实例分析】

往往业务的复杂对单机压力很大,无法通过扩展机器的方式得到成倍的性能提升,此时需要将任务分解,如微信:

a.简单的系统容易性能高

b.分配后的系统方便对单个业务进行扩展

那将微信的7个子系统再进行扩展更多可以么?

c.分的太细会使得层次调用次数成指数上升,反而导致业务性能下降。

机器之间的通讯时间会明显增长,耗时耗力。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值