第 8 章 高性能与可用性(2)
崔皓
8.2 可用性
8.1 节从缓存的角度介绍了分布式系统的高性能,本节要讲可用性是分布式系统已经具备的性质。将应用或者服务分布式部署本身就是在保证系统的可用性,当某一个节点上的服务挂掉时,其他节点上的水平扩展服务仍旧会提供相同的服务,提高用户的使用体验。在高并发、大数据的应用场景中,分布式系统的可用性体现得尤为明显。可用性需要保证在遭遇高并发时,整个系统中的应用程序依旧保持可用,如果从服务可用、服务部分可用和服务完全不可用三方面来看待这个问题,那么分别对应的是请求限流、服务降级和服务熔断。请求限流是从流入系统的请求角度,看如何限制单位时间内的请求数,来保证系统的稳定性。服务降级是从服务的角度,定义服务等级并且针对服务等级实施降级策略。服务熔断是对无法正常提供服务的应用程序采取特定的干预措施,保证其不会影响到其他应用程序。下面展开介绍这三个问题。
8.2.1 请求限流
随着业务量的增加,常常会遇到高并发场景,即便是并发处理能力很强的架构,也会因此遇到瓶颈。为了保证业务系统能够正常运行,在请求量超出系统承受范围的时候,就需要对流入系统的请求进行限制了。保证现有系统正常运行就是限流的意义。
系统的流量通常通过 QPS 来衡量。QPS(Queries-per-second,每秒查询率)是衡量系统每秒能够处理多少查询次数的标准,其数值越大,表示系统能够处理的并发查询数越高。这个数值如果过高,就会影响系统的处理效率,特别是秒杀系统瞬间迎来高并发时,对系统是一个挑战。为了保证系统的平稳运行,需要对流量进行限制。由于流量从客户端出发,先流经接入层,再到应用服务器,最后到应用服务,会经历几个过程,因此每个层次都需要考虑限流的问题。下面将展开讲解限流算法、接入层限流、单点限流、集群限流几方面。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入介绍了分布式系统在高并发、大数据应用场景中的可用性体现,以及如何保证系统的可用性。作者从请求限流、服务降级和服务熔断三个方面展开介绍了保证系统可用性的方法。在请求限流方面,详细讲解了 Nginx 如何应用限流算法的实践操作,包括单点限流和集群限流的实现方式。另外,文章还探讨了服务降级的重要性,以及降级等级与分类、降级开关分类与设计等相关内容。通过对限流和降级的详细介绍,读者可以快速了解分布式系统可用性的相关概念和实践操作,为应对高并发、大数据场景下的系统挑战提供了有益的参考。 文章还介绍了降级开关的实现策略,包括手动开关降级和自动降级开关的设计,以及在分布式系统中如何通过配置中心来管理降级开关。此外,文章还详细讲解了服务熔断机制的重要性,以及服务不可用的现象和原因、应用隔离、熔断模式、熔断工作流和 Hystrix 实现熔断等内容。通过本文的总结,读者可以全面了解分布式系统中保证可用性的关键技术和实践方法,为构建稳定、高效的分布式系统提供了重要参考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式架构原理与实践》
《分布式架构原理与实践》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论