程序员三高
互联网分布式系统架构设计中必须考虑的因素高可用、高并发、高性能。
1.高可用(HA) 即描述一个系统通过专门的设计,从而减少停工时间,保持其服务的高度的可用性。实现故障的自动化迁移,无需人工干预,即避免单点,使用集群,通过设置max_fail 和 fail_timeout来实现故障迁移,保证系统的高度可用性。
2.高并发HC
并发:指一个处理器同时处理多个任务。如:一个人同时吃三个馒头,又或者你吃饭时同时吃多个菜
并行:指多个处理器或者是多核的处理器同时处理多个不同的任务。如:三个人同时吃三个馒头,又或者你在吃饭的时候同时看手机并和你的同伴交流。
普通解释: 并发:交替做不同事情的能力 并行:同时做不同事情的能力 专业术语: 并发:不同的代码块交替执行 并行:不同的代码块同时执行
并发(Concurrency):是指程序含有多个逻辑上的独立执行块,他们可以独立地并行执行,也可以串行执行; 并行(parallelism):是指程序可以有多个独立执行块(也可能只有一个),他们可以同时执行整个任务的多个部分。 简单的说: 并行是多线程的一种形式,多线程是并发的一种形式。异步也是并发的一种形式。 并发包括多线程,多线程包括并行
并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生,区别着重于是否同时发生。
高并发指通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。
响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
吞吐量:单位时间内处理的请求数量。
QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
3.高性能
简单的说,高性能(High Performance)就是指程序处理速度快,所占内存少,cpu占用率低。
高并发和高性能是紧密相关的,提高应用的性能,是肯定可以提高系统的并发能力的。
应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。
增加服务器资源(CPU、内存、服务器数量),绝大部分时候是可以提高应用的并发能力和性能 (前提是应用能够支持多任务并行计算,多服务器分布式计算才行),但也是要避免其中的一些问题,才可以更好的更有效率的利用服务器资源。
|