你们知道淘宝,京东这些购物商场吗?他们到了双11,双12为什么能支持全国14亿人口同时购物下单呢,因为他们的程序做到了高并发、高性能、高可用。那么你对程序员的三高了解多少呢?
高并发指标有哪些?
- 响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间
- 吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。
- 秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多。
- 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
什么是高性能呢?
高性能是指程序处理速度非常快,所占内存少,cpu占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统发并发能力,两者互相捆绑在一起。应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。还有可以增加服务器的数量,内存,IO等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。
高可用
高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。高可用注意如果使用单机,一旦挂机将导致服务不可用,可以使用集群来代替单机,一台服务器挂了,还有其他后备服务器能够顶上。或者使用分布式部署项。比如现在redis的高可用的集群方案有: Redis单副本,Redis多副本(主从),Redis Sentinel(哨兵),Redis Cluster,Redis自研。
概念
1、交易型系统设计的一些原则
1.1.高并发原则
1.2.高可用原则
1.3.业务设计原则
高可用
1、负载均衡与反向代理
1.1.upstream配2置
1.2.负载均衡算法
1.3.失败重试
1.4.健康检查
1.5.其他配置
1.6.长连接
1.7.HTTP反向代理示例
1.8.HTTP动态负载均衡
1.9.Nginx四层负载均衡
2、隔离术
2.1线程隔离
2.2进程隔离
2.3集群隔离
2.4机房隔离
2.5读写隔离
2.6动静隔离
2.7爬虫隔离
2.8热点隔离
2.9资源隔离
2.10使用hystrix实现隔离
2.11基于Servlet 3实现请求隔离
3、限流详解
3.1限流算法
3.2应用级限流
3.3分布式限流
3.4接入层限流
4、降级特技
4.1降级预案
4.2自动开关降级
4.3人工开关降级
4. 4读服务降级
4.5写服务降级
4.6多级降级
4.7配置中心
4. 8使用Hystrix实现降级
4. 9使用Hystr ix实现熔断
5、超时与重试机制
5.1 简介
5. 2代理层超时与重试
5.3 Web容器超时
5. 4中间件客户端超时与重试
5. 5数据库客户端超时
5.6 NoSQL客户端超时
5.7业务超时
5. 8前端Aj ax:超时
5.9总结
6、回滚机制
6.1事务回滚
6. 2代码库回滚
6.3部署版本回滚
6.4数据版本回滚
6.5静态资源版本回滚
7、压测与预案
7.1系统压测
7.2系统优化和容灾
7.3应急预案
高并发
1、应用级缓存
1.1缓存简介
1.2缓存命中率
1.3缓存回收策略
1. 4 Java缓存类型
1.5应用级缓存示例
1.6缓存使用模式实践
1.7性能测试
2、HTTP缓存
2.1简介
2.2HTTP缓存
2.3 HTTPC1ient客户端缓存
2.4 Nginx HTTP缓存设置
2. 5 Nginx代理层缓存
2.6一些经验
3、多级缓存
3. 1多级缓存介绍
3. 2如何缓存数据
3.3分布式缓存与应用负载均衡
3. 4热点数据与更新缓存
3.5更新缓存与原子性
3. 6缓存崩溃与快速修复
4、连接池线程池详解
4.1数据库连接池
4.2 HTTFC1ient连接池
4.3线程池
5、异步并发实战
5.1同步阻塞调用
5.2异步Future
5.3异步C&llback
5. 4异步编排CompletableFuture
5. 5异步Web服务实现
5.6请求缓存
5.7请求合并
6、如何扩容
6.1单体应用垂直扩容
6.2单体应用水平扩容
6.3应用拆分
6. 4数据库拆分
6. 5数据库分库分表示例
6. 6数据异构
6.7任务系统扩容
7、队列术
7.1应用场景
7.2缓冲队列
7.3任务队列
7.4消息队列
7. 5请求队列
7.6数据总绑队列
7. 7混合队列
7.8其他队列
7.9 Di sruptor+Redi s队列
7.10下单系统水平可扩展架构
7.11基于Canal实现数据异构
实战案例
1、构建需求响应式亿级商品详情页
1. 1商品详情页是什么
1. 2商品详情页前端结构
1. 3我们的性能数据
1. 4单品页流里特点
1.5单品页技术架构发展
1.6详情页架构设计原则
1.7遇到的一些坑和问题
1.8其他
2、京东商品详情页服务闭环实践
2.1为什么需要统一服务
2. 2整体架构
2.3一些架构思路和总结
2.4引入Nginx接入层
2.5前端业务逻辑后置
2. 6前端接口服务端聚合
2.7服务隔离
3、使用0penResty开发高性能Web应用
3.1 OpenResty简介
3. 2基于OpenResty的常用架构模式
3. 3如何使用0p enResty开发Web应用
3. 4基于OpenResty的常用功能总结
3.5 -些问题
4、应用数据静态化架构高性能单页Web应用
4. 1整体架构
4. 2数据和模板动态化
4. 3多版本机制
4.4异常问题
5、使用0penResty开发eb服务
5.1 架构
5. 2单DB架构
5.3实现
6、使用0penResty开发商品详情页
6.1技术选型
6.2核心流程
6.3项目搭建
6.4数据存储实现
6.5动态服务实现
6. 6前端展示实现
京东架构师出版《亿级架构流量-高并发如何搭建》对这本实战PDF感兴趣的工程师朋友们可以点击此处来获取就可以了!
高性能、高并发、高扩展
附送阿里内部学习PPT、PDF