JD架构师告诉你亿级流量架构高性能、高可用、高扩展如何搭建的?

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 你们知道淘宝,京东这些购物商场吗?他们到了双11,双12为什么能支持全国14亿人口同时购物下单呢,因为他们的程序做到了高并发、高性能、高可用。那么你对程序员的三高了解多少呢?

你们知道淘宝,京东这些购物商场吗?他们到了双11,双12为什么能支持全国14亿人口同时购物下单呢,因为他们的程序做到了高并发、高性能、高可用。那么你对程序员的三高了解多少呢?

高并发指标有哪些?

  1. 响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间
  2. 吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。
  3. 秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多。
  4. 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。

什么是高性能呢?

高性能是指程序处理速度非常快,所占内存少,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

可以点击此处来获取就可以了!


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
20天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
91 3
Mysql高可用架构方案
|
1月前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
86 0
|
1月前
|
消息中间件 监控 API
理解微服务架构:构建灵活和可扩展的应用
【10月更文挑战第7天】理解微服务架构:构建灵活和可扩展的应用
|
1月前
|
消息中间件 监控 API
深入理解微服务架构:构建可扩展与灵活的应用
【10月更文挑战第7天】深入理解微服务架构:构建可扩展与灵活的应用
43 0
|
11天前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
21天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
20天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
23天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
64 1
|
25天前
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
71 3
下一篇
无影云桌面