超大流量分布式系统架构解决方案:人人都是架构师2.0

超大流量分布式系统架构解决方案:人人都是架构师2.0

作者:高翔龙

出版社:电子工业

出版年:2020年4月

ISBN:9787121385056

所属分类:经济金融

书刊介绍

《超大流量分布式系统架构解决方案:人人都是架构师2.0》内容简介

《超大流量分布式系统架构解决方案:人人都是架构师2.0》共5章,每一章的内容几乎都是独立的,大家完全可以有选择性地阅读。第1章以大规模服务化架构作为全书的开篇,主要介绍了分布式系统架构的演变过程,以及在大规模服务调用场景下,如何实施服务治理。第2章重点介绍了在大促前夕,如何在线上实施全链路压测,以及有指导性地进行容量规划和性能优化,让系统坚如磐石。第3章重点介绍了如何有效地对流量实施管制,若采用合理且有效的方式管制住峰值流量,使其井然有序地对系统进行访问,则在任何情况下,系统就都能稳定运行。第4章重点介绍了在大促抢购的场景下,如何解决高并发读和高并发写等核心技术难题。第5章详细地介绍了关系型数据库的架构演变过程,还重点介绍了在实际的订单业务场景下,如何保证数据的最终一致性。
高翔龙,云集基础架构负责人,技术委员会委员,经历了云集架构从0到1的蜕变,见证了云集业务的井喷式增长,拥有大量高并发、大流量,以及海量数据处理的实战经验,负责云集基础技术平台的架构设计和中间件研发等工作,热衷于开源技术,常年游走在GitHub上。

作品目录

推荐序
前言
第1章:大系统小做——大规模服务化架构
1.1、分布式系统的架构演变过程
1.1.1、单机架构
1.1.2、集群架构
1.1.3、垂直拆分业务子系统
1.1.4、服务化架构演进
1.1.5、服务化与微服务架构的区别
1.1.6、集群与分布式的区别
1.1.7、前后端分离架构演进
1.1.8、API网关服务
1.1.9、分布式多活数据中心架构演进
1.2、服务治理需求
1.2.1、服务化与RPC协议
1.2.2、基于服务治理框架Dubbo实现服务化
1.2.3、警惕因超时和重试引起的系统雪崩
1.2.4、为什么需要实施服务治理
1.2.5、关于服务化后的分布式事务问题
1.2.6、注册中心性能瓶颈方案
1.2.7、分布式多活架构下的服务就近调用方案
1.3、服务治理之调用链
1.3.1、Google的Dapper论文简介
1.3.2、调用链的实现方案
1.3.3、基于非侵入式运行期AOP方案实现数据采集上报
1.3.4、调配采样率
1.4、本章小结
第2章:大促备战核弹——全链路压测
2.1、为什么要在线上实施全链路压测
2.2、业务系统如何区分压测流量
2.2.1、压测流量打标方案
2.2.2、在链路上下文信息中传递压测标记
2.2.3、外部第三方接口走Mock
2.2.4、压测数据的隔离方案
2.3、如何发起大规模的压测流量
2.3.1、数据构造平台
2.3.2、自研全链路压测军演系统的一些经验分享
2.4、本章小结
第3章:削峰填谷——流控方案
3.1、为什么需要限流
3.2、限流方案
3.2.1、常见的限流算法
3.2.2、基于Guava实现平均速率限流
3.2.3、接入层限流方案
3.2.4、应用层限流——限时抢购限流方案
3.3、基于时间分片的削峰方案
3.3.1、活动分时段进行实现削峰
3.3.2、通过答题验证实现削峰
3.4、基于消息队列的解耦、削峰、最终一致性方案
3.4.1、基于消息队列实现解耦
3.4.2、常见消息中间件的使用
3.4.3、基于消息队列的一些典型案例
3.5、本章小结
第4章:大促抢购核心技术难题——读/写优化方案
4.1、缓存技术简介
4.1.1、本地缓存
4.1.2、本地缓存的痛点
4.1.3、神秘的off-heap技术
4.2、高性能分布式缓存Redis
4.2.1、基于Jedis客户端操作Redis
4.2.2、基于RedisCluster模式实现Sharding
4.3、同一热卖商品高并发读难题
4.3.1、多级缓存方案
4.3.2、缓存穿透思考
4.3.3、RedisCluster模式下的读/写分离方案
4.4、同一热卖商品高并发写难题
4.4.1、InnoDB引擎的行锁问题
4.4.2、基于Redis乐观锁的库存扣减方案
4.4.3、嵌入Lua脚本的库存扣减方案
4.4.4、基于AliSQL数据库提升并发写性能
4.5、本章小结
第5章:星罗棋布——分库分表方案
5.1、关系数据库的架构演变
5.1.1、数据库读/写分离
5.1.2、数据库垂直分库
5.1.3、数据库水平分库与水平分表
5.1.4、MySQL
Sharding与MySQL
Cluster的区别
5.2、Sharding中间件
5.2.1、常见的Sharding中间件对比
5.2.2、Shark简介
5.2.3、Shark的架构模型
5.2.4、使用Shark实现分库分表后的数据路由任务
5.2.5、分库分表后所带来的影响
5.2.6、全局唯一SequenceID解决方案
5.2.7、基于Solr满足多维度的复杂条件查询
5.2.8、关于分布式事务
5.3、数据库的HA方案
5.3.1、基于配置中心实现主备切换
5.3.2、基于Keepalived实现主备切换
5.3.3、保障主备切换过程中的数据一致性
5.4、订单业务冗余表需求
5.4.1、冗余表的实现方案
5.4.2、数据最终一致性方案
5.5、本章小结
附录
后记

相关推荐

微信二维码