亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统 作者:张开涛
亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统 出版社:电子工业出版社
亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统 内容简介
《亿级流量网站架构核心技术》一书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。
不管是软件开发人员,还是运维人员,通过阅读《亿级流量网站架构核心技术》都能系统地学习实现亿级流量网站的架构核心技术,并收获解决系统问题的思路和方法。
亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统 目录
前言
第1部分 概述
1 交易型系统设计的一些原则
第2部分 高可用
2 负载均衡与反向代理
3 隔离术
4 限流详解
5 降级特技
6 超时与重试机制
7 回滚机制
8 压测与预案
第3部分 高并发
9 应用级缓存
10 HTTP缓存
11 多级缓存
12 连接池线程池详解
13 异步并发实战
14 如何扩容
15 队列术
第4部分 案例
16 构建需求响应式亿级商品详情页
17 京东商品详情页服务闭环实践
18 使用OpenResty开发高性能Web应用
19 应用数据静态化架构高性能单页Web应用
20 使用OpenResty开发Web服务
21 使用OpenResty开发商品详情页
亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统 精彩文摘
在开发高并发系统时,有很多手段来保护系统,如缓存、降级和限流等。缓存目的是提升系统访问速度和增大系统处理能力,可谓是抗高并发流量的银弹。而降级是当服务出问题或者影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开的场景。而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页)等。因此,需有一种手段来限制这些场景下的并发/请求量,这种手段就是限流。
限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。在压测时我们能找出每个系统的处理峰值,然后通过设定峰值阈值,来防止当系统过载时,通过拒绝处理过载的请求来保障系统可用。另外,也应根据系统的吞吐量、响应时间、可用率来动态调整限流阈值。
一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如Nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(如Guava的RateLimiter、Nginx的limit_req模块,用来限制每秒的平均速率),以及限制远程接口调用速率、限制MQ的消费速率等。另外,还可以根据网络连接数、网络流量、CPU或内存负载等来限流。
先有缓存这个银弹,后有限流来应对618、双11高并发流量,在处理高并发问题上可以说是如虎添翼,不用担心瞬间流量导致系统挂掉或雪崩,最终做到有损服务而不是不服务。限流需要评估好,不可乱用,否则正常流量会出现一些奇怪的问题,而导致用户抱怨。
在实际应用时,也不要太纠结算法问题,因为一些限流算法实现是一样的,只是描述不一样。具体使用哪种限流技术,还是要根据实际场景来选择,不要一味去找最佳模式,白猫黑猫能解决问题的就是好猫。
因在实际工作中遇到过许多人来问如何进行限流,因此本文会详细介绍各种限流手段。接下来,我们从限流算法、应用级限流、分布式限流、接入层限流来详细学习限流技术手段。
本文来自一纸枕书投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。