失效链接处理 |
亿量 pȝ架构设计与实?李琛?PDF 下蝲
下蝲地址Q?/strong>
版权归出版社和原作者所有,链接已删除,误买正?br style="padding: 0px; margin: 0px;" />
用户下蝲说明Q?/strong>
?sh)子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:(x)
https://product.dangdang.com/11740917689.html
相关截图Q?br /> ![]() 资料内容Q?br /> 本书讲解亿量pȝ架构的设计方法及(qing)实战l验Q在内容l构上分Z大篇Q架构知识篇Q第1?章)Q主要讲解v量用户应用后台的l成l构、高q发处理和服务可用性障Q先讲解后台由哪些关键组件构成及(qing)机房搭徏思\Q然后讲解后台在应对高ƈ发读h和写h时的通用处理手段Q后讲解通用的服务治理手D以障后台高效运行。基服务设计(W??章)Q主要讲解几个基服务的架构设计,q里选取的基服务几乎为所有互联网后台所需的门pȝQ括分布式ID生成器、用L(fng)录服务和量消息推送系l;核心服务设计(W??3章)Q主要讲解常见社交互动场景中所需的核心服务的架构设计Q括内容发布pȝ、通用计数pȝ、排行榜服务、用户关pL务、Timeline Feed服务、服务和IM服务?/span> 资料目录Q?br /> 架构知识?/span> W??大型互联|公司的基础架构 2 1.1 引言Q单机房的内架构 2 1.2 客户端连接机房的技?QDNS 5 1.2.1 DNS的意?5 1.2.2 域名l构 6 1.2.3 域名服务?6 1.2.4 域名解析q程 7 1.3 客户端连接机房的技?QHTTP DNS 9 1.3.1 DNS存在的问?9 1.3.2 HTTP DNS的原?10 1.3.3 HTTP DNS实践 11 1.4 接入层的技术演q?12 1.4.1 Nginx 13 1.4.2 LVS 19 1.4.3 LVS+Nginx接入层的架构 25 1.5 服务发现 28 1.5.1 注册与发?29 1.5.2 可用地址理 30 1.5.3 地址变更推?31 1.6 RPC服务 32 1.7 存储层技术:(x)MySQL 35 1.7.1 关系型数据库 35 1.7.2 MySQL 37 1.7.3 高可用架?Q主从模?37 1.7.4 高可用架?QMHA 40 1.7.5 高可用架?QMMM 41 1.7.6 高可用架?QMGR 43 1.8 存储层技术:(x)Redis 44 1.8.1 高可用架?Q主从模?44 1.8.2 高可用架?Q哨光|?45 1.8.3 高可用架?Q集模?46 1.8.4 高可用架?Q中心化集群架构 50 1.9 存储层技术:(x)LSM Tree 53 1.9.1 LSM Tree的原?53 1.9.2 ?写数据流E?56 1.10 存储层技术:(x)其他NoSQL数据?57 1.11 消息中间件技?61 1.11.1 通信模式与用?62 1.11.2 Kafka 64 1.11.3 Kafka的高可用 67 1.12 多机房:(x)d机房 69 1.13 多机房:(x)同城双活 71 1.13.1 存储层改?71 1.13.2 灉|实施 73 1.13.3 分流与故障切?74 1.13.4 两地三中?77 1.14 多机房:(x)异地多活 78 1.14.1 架构要点 78 1.14.2 MySQL DRC的原?80 1.14.3 Redis DRC的原?83 1.14.4 分流{略 84 1.14.5 数据复制链\ 85 1.15 本章结 86 W??通用的高q发架构设计 88 2.1 高ƈ发架构设计的要点 88 2.1.1 形成高ƈ发系l的要条?88 2.1.2 高ƈ发系l的衡量指标 89 2.1.3 高ƈ发场景分c?90 2.2 高ƈ发读场景Ҏ(gu)1Q数据库?写分?91 2.2.1 ?写分L?91 2.2.2 ?写请求\由方?91 2.2.3 M延迟与解x?92 2.3 高ƈ发读场景Ҏ(gu)2Q本地缓?93 2.3.1 基本的缓存淘汰策?93 2.3.2 W-TinyLFU{略 94 2.3.3 ~存ȝ与SingleFlight 95 2.4 高ƈ发读场景Ҏ(gu)3Q分布式~存 100 2.4.1 分布式缓存选型 100 2.4.2 如何使用Redis~存 101 2.4.3 ~存IK?102 2.4.4 ~存雪崩 103 2.4.5 ~存更新 103 2.5 高ƈ发读场景ȝQCQRS 105 2.5.1 CQRS的简要架构与实现 106 2.5.2 更多的用场?107 2.5.3 CQRS架构的点 108 2.6 高ƈ发写场景Ҏ(gu)1Q数据分片之数据库分库分?108 2.6.1 分库和分?109 2.6.2 垂直拆分 109 2.6.3 水^拆分 111 2.6.4 水^拆分规则 113 2.6.5 扩容Ҏ(gu) 117 2.6.6 其他数据分片形式 120 2.7 高ƈ发写场景Ҏ(gu)2Q异步写与写聚合 120 2.7.1 异步?121 2.7.2 写聚?122 2.8 本章结 122 W??通用的服务可用性治理手D?124 3.1 微服务架构与|络调用 124 3.2 重试 126 3.2.1 q等接口 126 3.2.2 重试时机 130 3.2.3 重试风险与重试风?130 3.2.4 重试控制Q不重试的请?131 3.2.5 重试控制Q重试请求比 132 3.3 熔断与隔?132 3.3.1 服务雪崩 133 3.3.2 Hystrix熔断?134 3.3.3 Resilience4j和Sentinel熔断?136 3.3.4 ׃n资源与舱壁隔?137 3.3.5 舱壁隔离的实?138 3.4 限流 139 3.4.1 频控 140 3.4.2 单机限流1Q时间窗?141 3.4.3 单机限流2Q漏桶算?143 3.4.4 单机限流3Qo(h)牌桶法 144 3.4.5 全局限流 146 3.5 自适应限流 148 3.5.1 服务与等待队?149 3.5.2 Zh排队旉 150 3.5.3 Z延迟比率 151 3.5.4 其他Ҏ(gu) 152 3.6 降{略 155 3.6.1 服务依赖度降U?155 3.6.2 读请求降U?158 3.6.3 写请求降U?159 3.7 本章结 160 基础服务设计?/span> W??ID生成?164 4.1 分布式ID 164 4.1.1 全局与UUID 164 4.1.2 ID生成器的?165 4.1.3 单调递增与趋劉K增 167 4.2 单调递增的ID 168 4.2.1 Redis INCRBY命o(h) 168 4.2.2 Z数据库的自增主键 171 4.2.3 高可用架?172 4.3 势递增的IDQ基于时间戳 174 4.3.1 正确使用旉?174 4.3.2 Snowflake法 175 4.3.3 Snowflake法的灵zd?175 4.3.4 分配服务实例ID 177 4.3.5 旉回拨问题与解x?179 4.3.6 架构 179 4.4 势递增的IDQ基于数据库的自增主?180 4.4.1 分库分表架构 181 4.4.2 扚w~存架构 182 4.5 团点评开源方案:(x)Leaf 183 4.5.1 Leaf-segmentҎ(gu) 183 4.5.2 Leaf-snowflakeҎ(gu) 185 4.6 本章结 187 W??用户d服务 189 5.1 用户账号 189 5.2 用户d服务的功能要?190 5.3 密码?192 5.3.1 使用HTTPS通信 192 5.3.2 非对U加?193 5.3.3 密码加密存储 194 5.4 手机L(fng)录和邮箱d 194 5.4.1 数据表设?195 5.4.2 用户注册 195 5.4.3 用户d 196 5.4.4 手机号一键登?197 5.5 W三方登?199 5.5.1 OAuth 2标准 200 5.5.2 客户端接入第三方d 201 5.5.3 服务端接入第三方d 202 5.5.4 W三方登录的完整程ȝ 203 5.6 d态管?204 5.6.1 存储型方案:(x)Session 205 5.6.2 计算型方案:(x)令牌 207 5.6.3 长短令牌Ҏ(gu) 208 5.7 扫码d 210 5.7.1 二维?210 5.7.2 扫码d的场景介l?211 5.7.3 扫码d的技术实?211 5.8 本章结 213 W??量推送系l?215 6.1 分布式长q接服务的技术要素分?216 6.1.1 WebSocket协议?216 6.1.2 长连接服务器 217 6.1.3 分布式推送服务器 218 6.1.4 路由法 219 6.2 量推送系l设?220 6.2.1 整体架构设计 220 6.2.2 长连接的建立q程 221 6.2.3 消息格式设计 222 6.2.4 消息推送接?223 6.2.5 单点消息推送的l节 224 6.2.6 全局消息推送的l节 225 6.2.7 多点消息推送的l节 226 6.2.8 pusherqx升的问?227 6.2.9 pusher扩容的问?236 6.3 本章结 237 核心服务设计?/span> W??内容发布pȝ 240 7.1 内容发布pȝ的设计背?240 7.2 内容存储设计 241 7.2.1 内容数据的存?241 7.2.2 内容元信息的存储 243 7.2.3 内容M的存储选型 244 7.2.4 韌频{?245 7.3 内容审核设计 246 7.3.1 内容审核的要?246 7.3.2 内容的审核时机策?246 7.3.3 如何审核内容 247 7.3.4 审核中心的对外交?249 7.4 内容的全生命周期理设计 250 7.4.1 内容的创?250 7.4.2 内容的修改设?252 7.4.3 内容审核l果处理与版本控制设?254 7.4.4 内容的删除与下架设计 256 7.5 内容分发设计 256 7.5.1 内容分发渠道 256 7.5.2 何时通知分发渠道 257 7.5.3 内Ҏ(gu)递到分发渠道 257 7.6 内容展示设计 258 7.6.1 内容数据的点 259 7.6.2 使用CDN加速静态资源访?259 7.6.3 使用~存和多副本支撑高ƈ发读?260 7.6.4 内容展示程设计 263 7.7 完整架构总览 265 7.8 本章结 267 W??通用计数pȝ 268 8.1 计数的常见用?268 8.2 如何存储计数数据 269 8.2.1 计数数据的点 269 8.2.2 关系型数据库的困?270 8.2.3 是否要用关pd数据?270 8.2.4 使用Redis存储计数数据 271 8.3 量计数服务设计 272 8.3.1 Redis数据cd 272 8.3.2 计数累计与读取的CZ 274 8.3.3 化内存的调研 274 8.3.4 化内存:(x)定制化Redis 276 8.3.5 L(fng)数据分离 279 8.3.6 应对q热数据 280 8.3.7 计数服务架构?281 8.3.8 计数服务的适用范围 282 8.4 本章结 283 W??排行榜服?284 9.1 排行榜的应用场景 284 9.2 排行榜技术的?285 9.3 使用Redis实现排行?285 9.3.1 使用Redis ZSET 286 9.3.2 q等更新 287 9.3.3 同积分排名处?289 9.3.4 服务设计 291 9.3.5 关于大Key的问?295 9.4 _估排行榜的实现 296 9.4.1 U段?296 9.4.2 _估排名的实?299 9.5 排名与_估排名l合 306 9.6 本章结 309 W?0?用户关系服务 310 10.1 用户关系服务的职?310 10.2 ZRedis ZSET的设?311 10.3 Z数据库的设计 312 10.3.1 初的x 312 10.3.2 应对分库分表 313 10.3.3 Following表的索引设计 314 10.3.4 Follower表的索引设计 316 10.3.5 q:(x)回表问题与化 316 10.3.6 x数和?317 10.4 ~存查询 318 10.4.1 ~存什么数?318 10.4.2 ~存的创Z更新{略 319 10.4.3 本地~存 321 10.4.4 ~存与数据库l合的方?321 10.5 Z图数据库的设?323 10.5.1 实现用户关系 323 10.5.2 应用权衡 327 10.6 本章结 328 W?1?Timeline Feed服务 330 11.1 Feed的分类 330 11.2 Timeline Feed的功能?331 11.3 拉模式与用户发g?331 11.4 推模式与用户收g?333 11.5 推拉l合模式 334 11.5.1 l合思\ 334 11.5.2 区分z跃用户 335 11.6 实现Timeline Feed服务的关键技术细?336 11.6.1 内容与用h件箱的交?336 11.6.2 推送子d 338 11.6.3 收g存什么数?339 11.6.4 读请求参?340 11.6.5 使用数据库实现收件箱 340 11.6.6 使用Redis ZSET实现收g?343 11.6.7 通过推拉l合模式构徏Timeline Feed数据 348 11.6.8 收尾工作 355 11.7 本章结 356 W?2?服务 357 12.1 功能 357 12.2 列表模式 358 12.3 服务设计的初步想?361 12.4 单模式服务设计 361 12.4.1 数据表的初步设计 361 12.4.2 ?写接口与索引 362 12.4.3 数据库的设计 363 12.4.4 高ƈ发问?364 12.5 盖楼模式服务设计 366 12.5.1 数据库方案:(x)递归查询 366 12.5.2 数据库方案:(x)存完整楼?368 12.5.3 图数据库Ҏ(gu) 369 12.6 二模式服务设计 370 12.6.1 数据?371 12.6.2 旉序Q数据库Ҏ(gu) 371 12.6.3 旉序Q图数据库方?373 12.6.4 审核与状?376 12.6.5 按照热度排序 377 12.6.6 高ƈ发处?381 12.6.7 架构总览 385 12.7 本章结 386 W?3?IM服务 388 13.1 IM的意义与核心 388 13.2 IM相关概念 389 13.3 消息投?390 13.3.1 存储消息Q读扩散与写扩散 390 13.3.2 接收消息Q拉模式与推模式 393 13.4 存储初探 395 13.5 消息的有序性证 396 13.5.1 消息乱序 396 13.5.2 客户端发送消?396 13.5.3 服务端存储消?397 13.5.4 服务端推送消息与客户端补?398 13.6 ?x)话理与命令消?401 13.6.1 创徏单聊?x)?402 13.6.2 创徏聊?x)?402 13.6.3 命o(h)消息 403 13.7 消息回执 404 13.7.1 上报已读消息 404 13.7.2 记录已读消息 404 13.8 D|汇总:(x)存储设计 405 13.9 高ƈ发架?408 13.9.1 发送消?409 13.9.2 数据~存 409 13.9.3 消息分 410 13.9.4 直播间弹q模?411 13.10 本章结Q架?413 |