前言
网站是直接面对广大客户的,是公司的门户,必须快速响应,必须持续可用,必须抗得住洪峰。任何一个网站的发展过程中都出现过问题,影响客户体验和商业利益,公司业务规模越大,网站出现问题的损失越大。此时此刻,有这么一份笔记可以帮助你!
这份笔记是保证大规模电商系统高流量、高频次的葵花宝典,是互联网一线技术研发人员的实战手册。是经过“618”、“双11”多次大考,在实践中反复论证应运而生的。
如何构建高并发、大流量的系统,不是架构师闭门造车想出来的,是线上实际的用户流量检验的。这份手册通过大量的实践案例,告诉我们如何架构高并发,大流量的网站系统,不光有理论探讨,亦有大量的京东实际案例,干货多,强烈推荐研发人员通读。
第一部分概述
1.高并发原则
- 无状态
- 拆分
- 服务化
- 消息队列
- 数据异构
- 缓存银弹
- 并发化
2.高可用原则
- 降级
- 限流
- 切流量
- 可回滚
3.业务设计原则
- 防重设计
- 幂等设计
- 流程可定义
- 状态与状态机
- 后台系统操作可反馈.
- 后台系统审批化.
- 文档&注释
- 备份
第二部分 高可用
1.负载均衡与反向代理
- upstream配置
- 负载均衡算法
- 失败重试
- 健康检查
- 其他配置
- 长连接
- HTTP反向代理示例
- HTTP动态负载均衡
- Nginx四层负载均衡
2.隔离术
- 线程隔离
- 进程隔离
- 集群隔离
- 机房隔离
- 读写隔离
- 动静隔离
- 爬虫隔离
- 热点隔离
- 资源隔离
- 使用Hystrix实现隔离
- 基于Servlet3实现请求隔离
4.限流详解
- 限流算法
- 应用级限流
- 分布式限流
- 接入层限流
5.降级特技
- 降级预案
- 自动开关降级
- 人工开关降级
- 读服务降级
- 写服务降级
- 多级降级
- 配置中心
- 使用Hystrix实现降级
- 使用Hystrix实现熔断
6.超时与重试机制
- 简介
- 代理层超时与重试
- Web容器超时
- 中间件客户端超时与重试
- 数据库客户端超时
- NoSQL客户端超时
- 业务超时
- 前端Ajax超时
7.回滚机制
- 事务回滚
- 代码库回滚
- 部署版本回滚
- 数据版本回滚
- 静态资源版本回滚
8.压测与预案
- 系统压测
- 系统优化和容灾
- 应急预案
第三部分 高并发
1.应用级缓存
- 缓存简介
- 缓存命中率
- 缓存回收策略
- Java缓存类型
- 应用级缓存示例
- 缓存使用模式实践
- 性能测试
2.HTTP缓存
- 简介
- HTTP缓存
- HttpClient客户端缓存
- Nginx HTTP缓存设置
- Nginx代理层缓存
- 一些经验
3.多级缓存
- 多级缓存介绍
- 分布式缓存与应用负载均衡
- 热点数据与更新缓存
- 更新缓存与原子性
- 缓存崩溃与快速修复
4.连接池线程池详解
- 数据库连接池
- HttpClient连接池
- 线程池
5.异步并发实战
- 同步阻塞调用
- 异步Future
- 异步Callback
- 异步编排CompletableFuture
- 异步Web服务实现
- 请求缓存
- 请求合并
6.如何扩容
- 单体应用垂直扩容
- 单体应用水平扩容
- 应用拆分
- 数据库拆分
- 数据库分库分表示例
- 数据异构
- 任务系统扩容
7.队列术
- 应用场景
- 缓冲队列
- 任务队列
- 消息队列
- 请求队列
- 数据总线队列
- 混合队列
- 其他队列
- Disruptor+Redis队列
- 下单系统水平可扩展架构
- 基于Canal实现数据异构
第四部分 案例
1.构建需求响应式亿级商品详情页
- 商品详情页是什么
- 商品详情页前端结构
- 我们的性能数据
- 单品页流量特点
- 单品页技术架构发展
- 详情页架构设计原则
- 遇到的一些坑和问题
2.京东商品详情页服务闭环实践
- 为什么需要统一服务
- 整体架构
- 引入Nginx接入层
- 前端业务逻辑后置
- 前端接口服务端聚合
- 服务隔离
3.使用OpenResty开发高性能Web应用
- OpenResty简介
- 基于OpenResty的常用架构模式
- 如何使用OpenResty开发Web应用
- 基于OpenResty的常用功能总结
- 一些问题
4.应用数据静态化架构高性能单页Web应用
- 整体架构
- 控制系统
- 数据和模板动态化
- 多版本机制
- 异常问题
5.使用OpenResty开发Web服务
- 架构
- 单DB架构
- 实现
6.使用OpenResty开发商品详情页
- 技术选型
- 核心流程
- 项目搭建
- 数据存储实现
- 动态服务实现
总结
这份笔记详细地阐述了开发高并发高可用网站的一系列关键原则问题。就如何实现系统高可用,流量高并发进行了深刻剖析。例举了大量的真实应用案例,可以帮助我们深入了解。
这份笔记作者长期服务于京东研发的第一线,拥有丰富的软件开发经验。秉持着对技术的热爱,为互联网开发者奉献自己的心路历程。希望你们可以从这本书中受益。
由于篇幅限制,就不一一展示了,有需要文中资料完整版的小伙伴们注意啦:一键三连(点赞+收藏+关注)