高并发系统设计基础知识

该文章记录极客时间《高并发系统设计》系列文章的相关知识点,供以后自己查看
工作过程中,经常用听到高并发、高性能系统等名词,什么时高并发系统,简单的来说就是可以同时处理许多请求、满足业务需求的系统。下面介绍一些相关的基本知识。

高并发系统常见实现方案
  1. 异步:如果请求无法短时间完成,可以先返回,等完成后通知请求对方,主要为了提高cpu利用率,处理更多请求
  2. 缓存:为了解决IO效率问题,将一些数据缓存,增加系统性能
  3. 横向扩展:在单个服务无法满足需求时,通过增加服务实例数,来提高总体系统并发性能
    上述三个方案中异步与缓存都应属于纵向扩展,用来提高单个服务的处理性能。
高并发系统常见的三个目标:高性能、高可用、高扩展

高性能:可以理解为系统单位时间内可处理的请求量,系统性能较低一般会导致系统体验较差。常见的优化原则有以下几个:

  1. 问题导向,不能盲目优化;脱离问题,盲目过早的进行系统优化,一般会增加系统的复杂度,并浪费开发人员的时间,未能达到理想的效果。
  2. “二八原则”:用20%的精力解决80%的性能问题,因此在优化过程中一定要抓住主要矛盾,优化当前的主要性能瓶颈
  3. 要有数据支撑:要了解当前系统的性能,以及优化后提升了多少性能。常见的性能指标有:请求平均值、最大值、分位值、响应时间、吞吐量等,需要选择一个合适的指标来做为性能优化的数据支撑。
  4. 性能优化是持续性过程;需要不断持续性的分析与优化,才能达到最终的性能优化目的
  • 性能优化方式:增加并发度、减少单次请求时间
    减少单次请求时间;可以通过分析系统属于CPU密集型,还是IO密集型来进行有针对性的优化,对于CPU密集型,可以利用perf生成火焰图,来分析CPU的性能,对于IO密集型的服务,可以利用Linux命令来获取进行iO的性能,例如:iostat, sar,pidstat等

高可用性: 一般用来表示系统出故障的机率较低,一般利用几个9表示,例如4个9=99.99%;表示一年内系统99.99%的时间内都是可用的。一般需要从两个方面考虑:系统设计与系统运维
5. 系统设计注重的是如何处理故障,关键词是冗余和取舍。冗余指的是通过增加备用节点,出故障时由备用节点对外提供服务,例如:故障转移,多活架构等等;取舍指丢弃不重要的服务,保障主体服务的安全,例如:超时时间、限流、降级等。
6. 系统运维注重的是如何避免故障的发生,例如:灰度发布、故障演练等。

高可扩展性:从架构设计上来说是一个设计的指标,它表示通过增加机器的方式来线性提高系统的处理能力。但有些时候简单的扩展业务机器并不起效,主要原因是对于一个复杂的系统,影响系统整体性能的瓶颈点可能有多个,不同时期,不同的瓶颈起主要作用,所以系统的可扩展性其实比较复杂,我们一般需要站在整体架构的基础上来考虑系统的可扩展性,例如:数据库、缓存、第三方依赖、负载均衡、带宽等可能都需要考虑。
对于高扩展系统设计一个比较重要的思路就是拆分,通过将庞杂的系统拆分成独立的,有单一职责的模块,来降低扩展的复杂度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值