前文现已总结了高并发体系一般的规划办法,本文接着总结高并发体系规划方针
高功能
优化准则
- 功能优化必定不能盲目,必定是问题导向的
- 遵从“八二准则”:用 20% 的精力处理 80% 的功能问题,捉住首要矛盾处理首要问题
- 数据支撑:了解呼应时刻和吞吐量优化目标
- 继续优化:继续不断地寻觅功能瓶颈,制定优化计划,直到到达方针停止
衡量目标
衡量功能的目标一般是体系接口的呼应时刻,首要包含
- 均匀时刻
- 最大时刻
- 分位值:包含90 分位、95 分位、75 分位
功能优化办法
- 进步体系的处理中心数
-
减少单次使命呼应时刻
- CPU 密集型体系:需求处理大量的 CPU 运算,那么选用更高效的算法或者减少运算次数便是这类体系重要的优化手段
- IO 密集型体系:经过采用东西和监控来发现功能瓶颈点
优化三板斧
- 数据优先,做一个新的体系在上线之前必定要把功能监控体系做好
- 把握一些功能优化东西和办法,需求在工作中不断的积累
- 计算机基础常识很重要,比方说网络常识、操作体系常识等等,把握了基础常识才干让你在优化过程中捉住功能问题的要害,也能在功能优化过程中挥洒自如
高可用
高可用性(High Availability,HA):体系具备较高的无毛病工作的才干
可用性衡量目标
MTBF(Mean Time Between Failure) 是均匀毛病间隔的意思,代表两次毛病的间隔时刻,也便是体系正常工作的均匀时刻。这个时刻越长,体系稳定性越高。
MTTR(Mean Time To Repair) 表示毛病的均匀恢复时刻,也可以理解为均匀毛病时刻。这个值越小,毛病关于用户的影响越小。
可用性与 MTBF 和 MTTR 的值休戚相关,咱们可以用下面的公式表示它们之间的关系:
Availability = MTBF / (MTBF MTTR)
首要经过几个9来描绘,正常体系比方电商体系可经过体系重要程度区别1级使用,2级使用,3级使用。1级使用重要性最高,一般需求四个九保证,2级和3级使用一般三个九就可以了
规划思路
精炼总结首要如下:
- 体系层面
- failover(毛病搬运)
- 超时控制
- 降级
- 限流
- 运维层面
- 灰度发布:包含灰度发布计划兼容性尤其是数据库、缓存操作的影响
- 毛病演练
开发和运维角度
提高可用性的办法是不同的:
- 开发注重的是怎么处理毛病,要害词是冗余和取舍。冗余指的是有备用节点,集群来顶替出毛病的服务,比方文中说到的毛病搬运,还有多活架构等等;取舍指的是丢卒保车,保证主体服务的安全。
- 从运维角度来看则更偏保守,注重的是怎么防止毛病的发生,比方更重视改变管理以及怎么做毛病的演练。
两者结合起来才干组成一套完善的高可用体系。
取舍这块可以参阅之前写的一篇文章,架构权衡
高可扩展性
不仅仅看使用服务自身,更需求从整个体系层面考虑,包含数据库、缓存、依靠的第三方、负载均衡器、交换机带宽
规划思路:拆分
首要规划思路便是拆分,会把杂乱的体系拆分红独立的,有单一职责的模块。将复杂的东西简单化,电商体系便是一个比较好的案例,拆成用户体系、订单体系、促销体系、购物车体系等等
- 存储扩展性:比方将电商体系数据库拆成多个库,如用户库、订单库等(笔直拆分),做到隔离毛病,某一个库“挂了”不会影响到其它的数据库;假如数据量很大,将用户库拆成多个数据库,比方用户库1、用户库2,叫做水平拆分
- 事务扩展性:包含事务纬度,重要性纬度和请求来历纬度
根据事务接口的重要程度,把事务分为中心池和非中心池