最近梳理了高并发系统相关的概念与技术,写此文目的是做一个系统性的总结,一方面惠及他人,另一方面希望有兴趣的同学可以一起交流(微信号:selfimpr)。
高并发、高可用、高性能、高可扩展是什么关系?
产品、市场、运营的成功,带来了同时段大量用户对系统的访问,这就是高并发。
高并发本身并不是一种技术的方法,它是系统要面临的一种有技术挑战的场景。
在这个场景下,(工程)技术的核心价值,是确保高并发时的用户体验,具体而言,就是系统不应该发生错误,并且以极快的速度给用户响应。
上面是对问题的定性分析,但定性分析不能帮助我们开展工作,所以还需要能够对问题进行定量分析。
可用性、性能、扩展性就是用于定量分析的三个视角。
可用性的目标,是为了让系统尽可能不发生错误,或者将发生错误后的损失降到最低。
性能的目标,是为了让尽可能多的用户,用尽可能少的时间得到系统的响应。
扩展性的目标,是为了支撑可用性和性能,在一些特殊情况下,不得不对系统结构做出调整时,尽可能以低成本的方式完成。
可用性的度量与拆解