《亿级流量网站核心架构技术》读书笔记

1、框架

《亿级流量网站核心架构技术》读书笔记_第1张图片

2、设计思路

高并发原则:无状态,拆分,服务化,消息队列,缓存

浏览器缓存:设置请求的过期时间,如对响应头expires,cache-control 进行控制,只适用于对实时性不敏感的数据

客户端缓存:比如提前将静态文件进行缓存

CDN缓存:将内容吐送到离用户最近的 CDN 节点

高可用原则:降级,限流,切流量,可回滚

业务设计原则:防重设计,比如结算页防止重复提交;幂等设计,流程可定义,状态与状态机

负载均衡与反向代理:上游服务器配置,负载均衡算法,失败重试机制,服务器心跳检查

负载均衡算法:轮询;ip_hash,hash key(建议使用一致性哈希算法),哈希算法(根据请求uri进行哈希),least_conn(将请求负载到最少活跃的服务器)

隔离:线程隔离(主要指线程池隔离),进程隔离,集群隔离,机房隔离,读写隔离,爬虫隔离(将一些恶意访问倒流到其他地方),热点隔离(对于读热点使用多级缓存,对于写热点使用队列)

限流:(最终结果是有损服务而不是不服务)令牌桶算法,应用级限流,分布式限流(lua+Redis 或 Nginx+lua),接入层限流(Nginx)

节流:(在特定时间窗口内,如果有多个重复请求则只处理一个)

降级:(保证核心系统可用)读服务降级,写服务降级(将同步操作变为异步操作,比如将写DB的操作变为发送一条写DB的消息)

超时与重试机制:代理层超时与重试,web 容器超时,中间件客户端超时与重试,数据库客户端超时,nosql 客户端超时,业务超时,前端ajax 超时。超时以后,应该要有相应的策略来处理,比如重试,尝试其他服务,返回托底数据,返回错误页。

回滚机制:事务回滚,有时候不需要保证强一致性,只需要保证最终一致性,部署版本回滚,静态资源回滚

压测与预案:系统压测(读压测,写压测,混合压测),为了保证压测的真实性,应该使用全链路压测

缓存:让数据更接近使用者,让访问速度更快。

缓存回收策略:基于空间,基于容量,基于时间

回收算法:FIFO,LRU,LFU

HTTP缓存的一些经验:只缓存200状态码的响应;不需要强一致的页面可以进行缓存;css等静态文件可以设置很长过期时间,通过版本号来控制过期;缓存 key 要合理设计
https://cloud.tencent.com/developer/news/331859

3、读后感

亿级流量主要从两个方便进行考虑:
(1)稳定性(高可用)
正向:多机部署(负载均衡,反向代理,隔离)、限流、降级
反向:超时重传、回滚机制、压测预案
(2)速度(高并发)
缓存(应用缓存,http缓存,多级缓存)
减少耗时(连接池线程池,异步并发)
多机(扩容,队列)

你可能感兴趣的:(《亿级流量网站核心架构技术》读书笔记)