失效链接处理 |
人人都是架构师 分布式系统架构落地与瓶颈突破 PDF 下载
转载自:http://download.csdn.net/detail/u012525140/9885829
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/25068713.html
相关截图:
资料简介: 本书注重大型网站技术架构方案的落地,以及实战实施。本书不仅会从宏观的角度去阐述大型电商网站系统的架构设计,更重要的是,会结合笔者实际的工作经验,深入剖析大型电商系统*容易出现系统瓶颈的细节,并提供可实施方案。其中独特内容有:利用mq的消峰;大秒系统redis cluster的单点瓶颈;关系型数据库之sharding改造等。 资料目录: 第1章 分布式服务案例 1 1.1 分布式系统的架构演变过程 2 1.1.1 单机系统 3 1.1.2 集群架构 4 1.1.3 拆系统之业务垂直化 6 1.1.4 为什么需要实现服务化架构 8 1.1.5 服务拆分粒度之微服务 10 1.2 系统服务化需求 11 1.2.1 服务化与RPC协议 11 1.2.2 使用阿里分布式服务框架Dubbo实现服务化 12 1.2.3 警惕Dubbo因超时和重试引起的系统雪崩 16 1.2.4 服务治理方案 18 1.2.5 关于服务化后的分布式事务问题 20 1.3 分布式调用跟踪系统需求 21 1.3.1 Google的Dapper论文简介 22 1.3.2 基于Dubbo实现分布式调用跟踪系统方案 25 1.3.3 采样率方案 35 1.4 本章小结 37 第2章 大流量限流/消峰案例 38 2.1 分布式系统为什么需要进行流量管制 39 2.2 限流的具体方案 42 2.2.1 常见的限流算法 43 2.2.2 使用Google的Guava实现平均速率限流 45 2.2.3 使用Nginx实现接入层限流 48 2.2.4 使用计数器算法实现商品抢购限流 49 2.3 基于时间分片的消峰方案 51 2.3.1 活动分时段进行实现消峰 52 2.3.2 通过答题验证实现消峰 52 2.4 异步调用需求 53 2.4.1 使用MQ实现系统之间的解耦 54 2.4.2 使用Apache开源的ActiveMQ实现异步调用 55 2.4.3 使用阿里开源的RocketMQ实现互联网场景下的流量消峰 61 2.4.4 基于MQ方案实现流量消峰的一些典型案例 72 2.5 本章小结 75 第3章 分布式配置管理服务案例 76 3.1 本地配置 77 3.1.1 将配置信息耦合在业务代码中 77 3.1.2 将配置信息配置在配置文件中 79 3.2 集中式资源配置需求 82 3.2.1 分布式一致性协调服务ZooKeeper简介 83 3.2.2 ZooKeeper的下载与集群安装 84 3.2.3 ZooKeeper的基本使用技巧 86 3.2.4 基于ZooKeeper实现分布式配置管理平台方案 87 3.2.5 从配置中心获取Spring的Bean定义实现Bean动态注册 93 3.2.6 容灾方案 95 3.2.7 使用淘宝Diamond实现分布式配置管理服务 96 3.2.8 Diamond与ZooKeeper的细节差异 101 3.2.9 使用百度Disconf实现分布式配置管理服务 102 3.3 本章小结 110 第4章 大促场景下热点数据的读/写优化案例 111 4.1 缓存技术简介 112 4.1.1 使用Ehcache实现数据缓存 114 4.1.2 LocalCache存在的弊端 116 4.1.3 神秘的off-heap技术 117 4.2 高性能分布式缓存Redis简介 120 4.2.1 使用Jedis客户端操作Redis 121 4.2.2 使用Redis集群实现数据水平化存储 122 4.3 同一热卖商品高并发读需求 124 4.3.1 Redis集群多写多读方案 125 4.3.2 保障多写时的数据一致性 126 4.3.3 LocalCache结合Redis集群的多级Cache方案 128 4.3.4 实时热点自动发现方案 130 4.4 同一热卖商品高并发写需求 132 4.4.1 InnoDB行锁引起数据库TPS下降 132 4.4.2 在Redis中扣减热卖商品库存方案 134 4.4.3 热卖商品库存扣减优化方案 138 4.4.4 控制单机并发写流量方案 141 4.4.5 使用阿里开源的AliSQL数据库提升秒杀场景性能 142 4.5 本章小结 148 第5章 数据库分库分表案例 149 5.1 关系型数据库的架构演变 150 5.1.1 数据库读写分离 150 5.1.2 数据库垂直分库 151 5.1.3 数据库水平分库与水平分表 152 5.1.4 MySQL Sharding与MySQL Cluster的区别 153 5.2 Sharding中间件 154 5.2.1 常见的 Sharding中间件对比 155 5.2.2 Shark简介 156 5.2.3 Shark的架构模型 157 5.2.4 使用Shark实现分库分表后的数据路由任务 159 5.2.5 分库分表后所带来的影响 166 5.2.6 多机SequenceID解决方案 167 5.2.7 使用Solr满足多维度的复杂条件查询 170 5.2.8 关于分布式事务 172 5.3 数据库的HA方案 173 5.3.1 基于配置中心实现主从切换 174 5.3.2 基于Keepalived实现主从切换 176 5.3.3 保障主从切换过程中的数据一致性 179 5.4 订单业务冗余表需求 180 5.4.1 冗余表的实现方案 181 5.4.2 保障冗余表的数据一致性 183 5.5 本章小结 186 后记 187 |