• 亿级流量系统架构设计与实战
21年品牌 40万+商家 超1.5亿件商品

亿级流量系统架构设计与实战

全新正版 急速发货

62.8 4.9折 128 全新

库存76件

天津武清
认证卖家担保交易快速发货售后保障

作者李琛轩

出版社电子工业出版社

ISBN9787121476983

出版时间2024-05

装帧平装

开本16开

定价128元

货号29712617

上书时间2024-12-23

当科图书专营店

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
导语摘要
本书讲解亿级流量系统架构的设计方法及实战经验,在内容结构上分为三大篇:架构知识篇(第1~3章),主要讲解海量用户应用后台的组成结构、高并发处理和服务可用性保障,首先讲解后台由哪些关键组件构成及机房搭建思路,然后讲解后台在应对高并发读请求和写请求时的通用处理手段,最后讲解通用的服务治理手段以保障后台高效运行。基础服务设计篇(第4~6章),主要讲解几个基础服务的架构设计,这里选取的基础服务几乎为所有互联网后台所需的专门系统,包括分布式唯一ID生成器、用户登录服务和海量消息推送系统;核心服务设计篇(第7~13章),主要讲解常见社交互动场景中所需的核心服务的架构设计,包括内容发布系统、通用计数系统、排行榜服务、用户关系服务、Timeline Feed服务、评论服务和IM服务。

作者简介
李琛轩,高级技术专家,8年互联网后台开发经验,现任某全球社交产品后台技术负责人。从事互联网社交产品领域的研发工作与架构设计多年,从业以来负责过多个知名产品的后台开发工作,相继深耕于消息队列、服务发现系统、服务治理、分布式事务、高并发架构设计、全球多活等技术领域。

目录
架构知识篇

第1章  大型互联网公司的基础架构2

1.1  引言:单机房的内部架构2

1.2  客户端连接机房的技术1:DNS5

1.2.1  DNS的意义5

1.2.2  域名结构6

1.2.3  域名服务器6

1.2.4  域名解析过程7

1.3  客户端连接机房的技术2:HTTP DNS9

1.3.1  DNS存在的问题9

1.3.2  HTTP DNS的原理10

1.3.3  HTTP DNS实践11

1.4  接入层的技术演进12

1.4.1  Nginx13

1.4.2  LVS19

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  存储层技术:MySQL35

1.7.1  关系型数据库35

1.7.2  MySQL37

1.7.3  高可用架构1:主从模式37

1.7.4  高可用架构2:MHA40

1.7.5  高可用架构3:MMM41

1.7.6  高可用架构4:MGR43

1.8  存储层技术:Redis44

1.8.1  高可用架构1:主从模式44

1.8.2  高可用架构2:哨兵模式45

1.8.3  高可用架构3:集群模式46

1.8.4  高可用架构4:中心化集群架构50

1.9  存储层技术:LSM Tree53

1.9.1  LSM Tree的原理53

1.9.2  读/写数据流程56

1.10  存储层技术:其他NoSQL数据库57

1.11  消息中间件技术61

1.11.1  通信模式与用途62

1.11.2  Kafka64

1.11.3  Kafka的高可用67

1.12  多机房:主备机房69

1.13  多机房:同城双活71

1.13.1  存储层改造71

1.13.2  灵活实施73

1.13.3  分流与故障切流74

1.13.4  两地三中心77

1.14  多机房:异地多活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

第2章  通用的高并发架构设计88

2.1  高并发架构设计的要点88

2.1.1  形成高并发系统的必要条件88

2.1.2  高并发系统的衡量指标89

2.1.3  高并发场景分类90

2.2  高并发读场景方案1:数据库读/写分离91

2.2.1  读/写分离架构91

2.2.2  读/写请求路由方式91

2.2.3  主从延迟与解决方案92

2.3  高并发读场景方案2:本地缓存93

2.3.1  基本的缓存淘汰策略93

2.3.2  W-TinyLFU策略94

2.3.3  缓存击穿与SingleFlight95

2.4  高并发读场景方案3:分布式缓存100

2.4.1  分布式缓存选型100

2.4.2  如何使用Redis缓存101

2.4.3  缓存穿透102

2.4.4  缓存雪崩103

2.4.5  缓存更新103

2.5  高并发读场景总结:CQRS105

2.5.1  CQRS的简要架构与实现106

2.5.2  更多的使用场景107

2.5.3  CQRS架构的特点108

2.6  高并发写场景方案1:数据分片之数据库分库分表108

2.6.1  分库和分表109

2.6.2  垂直拆分109

2.6.3  水平拆分111

2.6.4  水平拆分规则113

2.6.5  扩容方案117

2.6.6  其他数据分片形式120

2.7  高并发写场景方案2:异步写与写聚合120

2.7.1  异步写121

2.7.2  写聚合122

2.8  本章小结122

第3章  通用的服务可用性治理手段124

3.1  微服务架构与网络调用124

3.2  重试126

3.2.1  幂等接口126

3.2.2  重试时机130

3.2.3  重试风险与重试风暴130

3.2.4  重试控制:不重试的请求131

3.2.5  重试控制:重试请求比132

3.3  熔断与隔离132

3.3.1  服务雪崩133

3.3.2  Hystrix熔断器134

3.3.3  Resilience4j和Sentinel熔断器136

3.3.4  共享资源与舱壁隔离137

3.3.5  舱壁隔离的实现138

3.4  限流139

3.4.1  频控140

3.4.2  单机限流1:时间窗口141

3.4.3  单机限流2:漏桶算法143

3.4.4  单机限流3:令牌桶算法144

3.4.5  全局限流146

3.5  自适应限流148

3.5.1  服务与等待队列149

3.5.2  基于请求排队时间150

3.5.3  基于延迟比率151

3.5.4  其他方案152

3.6  降级策略155

3.6.1  服务依赖度降级155

3.6.2  读请求降级158

3.6.3  写请求降级159

3.7  本章小结160

基础服务设计篇

第4章  唯一ID生成器164

4.1  分布式唯一ID164

4.1.1  全局唯一与UUID164

4.1.2  唯一ID生成器的特点165

4.1.3  单调递增与趋势递增167

4.2  单调递增的唯一ID168

4.2.1  Redis INCRBY命令168

4.2.2  基于数据库的自增主键171

4.2.3  高可用架构172

4.3  趋势递增的唯一ID:基于时间戳174

4.3.1  正确使用时间戳174

4.3.2  Snowflake算法175

4.3.3  Snowflake算法的灵活应用175

4.3.4  分配服务实例ID177

4.3.5  时钟回拨问题与解决方案179

4.3.6  最终架构179

4.4  趋势递增的唯一ID:基于数据库的自增主键180

4.4.1  分库分表架构181

4.4.2  批量缓存架构182

4.5  美团点评开源方案:Leaf183

4.5.1  Leaf-segment方案183

4.5.2  Leaf-snowflake方案185

4.6  本章小结187

第5章  用户登录服务189

5.1  用户账号189

5.2  用户登录服务的功能要点190

5.3  密码保护192

5.3.1  使用HTTPS通信192

5.3.2  非对称加密193

5.3.3  密码加密存储194

5.4  手机号登录和邮箱登录194

5.4.1  数据表设计195

5.4.2  用户注册195

5.4.3  用户登录196

5.4.4  手机号一键登录197

5.5  第三方登录199

5.5.1  OAuth 2标准200

5.5.2  客户端接入第三方登录201

5.5.3  服务端接入第三方登录202

5.5.4  第三方登录的完整流程总结203

5.6  登录态管理204

5.6.1  存储型方案:Session205

5.6.2  计算型方案:令牌207

5.6.3  长短令牌方案208

5.7  扫码登录210

5.7.1  二维码210

5.7.2  扫码登录的场景介绍211

5.7.3  扫码登录的技术实现211

5.8  本章小结213

第6章  海量推送系统215

6.1  分布式长连接服务的技术要素分析216

6.1.1  WebSocket协议简介216

6.1.2  长连接服务器217

6.1.3  分布式推送服务器218

6.1.4  路由算法219

6.2  海量推送系统设计220

6.2.1  整体架构设计220

6.2.2  长连接的建立过程221

6.2.3  消息格式设计222

6.2.4  消息推送接口223

6.2.5  单点消息推送的细节224

6.2.6  全局消息推送的细节225

6.2.7  多点消息推送的细节226

6.2.8  pusher平滑升级的问题227

6.2.9  pusher扩容的问题236

6.3  本章小结237

核心服务设计篇

第7章  内容发布系统240

7.1  内容发布系统的设计背景240

7.2  内容存储设计241

7.2.1  内容数据的存储241

7.2.2  内容元信息的存储243

7.2.3  内容主体的存储选型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  内容审核结果处理与版本控制设计254

7.4.4  内容的删除与下架设计256

7.5  内容分发设计256

7.5.1  内容分发渠道256

7.5.2  何时通知分发渠道257

7.5.3  将内容投递到分发渠道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

第8章  通用计数系统268

8.1  计数的常见用途268

8.2  如何存储计数数据269

8.2.1  计数数据的特点269

8.2.2  关系型数据库的困境270

8.2.3  是否要使用关系型数据库270

8.2.4  使用Redis存储计数数据271

8.3  海量计数服务设计272

8.3.1  Redis数据类型272

8.3.2  计数累计与读取的示例274

8.3.3  优化内存的调研274

8.3.4  优化内存:定制化Redis276

8.3.5  冷热数据分离279

8.3.6  应对过热数据280

8.3.7  计数服务架构图281

8.3.8  计数服务的适用范围282

8.4  本章小结283

第9章  排行榜服务284

9.1  排行榜的应用场景284

9.2  排行榜技术的特点285

9.3  使用Redis实现排行榜285

9.3.1  使用Redis ZSET286

9.3.2  幂等更新287

9.3.3  同积分排名处理289

9.3.4  服务设计291

9.3.5  关于大Key的问题295

9.4  粗估排行榜的实现296

9.4.1  线段树296

9.4.2  粗估排名的实现299

9.5  精确排名与粗估排名结合306

9.6  本章小结309

第10章  用户关系服务310

10.1  用户关系服务的职责310

10.2  基于Redis ZSET的设计311

10.3  基于数据库的设计312

10.3.1  最初的想法312

10.3.2  应对分库分表313

10.3.3  Following表的索引设计314

10.3.4  Follower表的索引设计316

10.3.5  进阶:回表问题与优化316

10.3.6  关注数和粉丝数317

10.4  缓存查询318

10.4.1  缓存什么数据318

10.4.2  缓存的创建与更新策略319

10.4.3  本地缓存321

10.4.4  缓存与数据库结合的最终方案321

10.5  基于图数据库的设计323

10.5.1  实现用户关系323

10.5.2  应用权衡327

10.6  本章小结328

第11章  Timeline Feed1

内容摘要
本书讲解亿级流量系统架构的设计方法及实战经验,在内容结构上分为三大篇:架构知识篇(第1~3章),主要讲解海量用户应用后台的组成结构、高并发处理和服务可用性保障,首先讲解后台由哪些关键组件构成及机房搭建思路,然后讲解后台在应对高并发读请求和写请求时的通用处理手段,最后讲解通用的服务治理手段以保障后台高效运行。基础服务设计篇(第4~6章),主要讲解几个基础服务的架构设计,这里选取的基础服务几乎为所有互联网后台所需的专门系统,包括分布式唯一ID生成器、用户登录服务和海量消息推送系统;核心服务设计篇(第7~13章),主要讲解常见社交互动场景中所需的核心服务的架构设计,包括内容发布系统、通用计数系统、排行榜服务、用户关系服务、Timeline Feed服务、评论服务和IM服务。

主编推荐
李琛轩,高级技术专家,8年互联网后台开发经验,现任某全球社交产品后台技术负责人。从事互联网社交产品领域的研发工作与架构设计多年,从业以来负责过多个知名产品的后台开发工作,相继深耕于消息队列、服务发现系统、服务治理、分布式事务、高并发架构设计、全球多活等技术领域。

媒体评论
"本书从全局的角度深度解析了互联网后台架构设计的观点和方法,融入了大量来自工业级互联网后台的实战案例。本书涵盖知识面广、深入浅出,对于渴望成为后台架构师的学习者甚至初学者来说,是一本值得深度研读的好书。本书不仅是我们学习架构知识时的优质资料,也是我们日常工作中的实用参考手册。 
——郑闫强◇小米科技高级技术总监

作者在本书中详细介绍了亿级流量系统架构设计的知识点,并给出了自己的独到观点。本书不但涵盖了系统架构设计基础知识,还涵盖了目前广大UGC平台的常见服务设计实践,既可以作为系统架构设计参考资料,也可以作为相关面试宝典。 
——李艳鹏◇互联网资深架构师,《分布式服务架构》和《可伸缩服务架构》作者 

本书介绍了大型互联网公司的基础组件、高并发和高可用设计的通用思路,以及基于这些知识解决真实业务问题的案例。有经验的读者可以通过阅读本书对自己的知识进行查漏补缺,新手也可以通过阅读本书建立自己的知识体系。如果能够在阅读书中基础服务设计的案例之前,先想一想自己会如何设计,就能更深刻地理解这些设计的精巧之处。 
——王迪◇某社交产品资深架构师 

本书介绍了互联网后台核心知识,涉及机房搭建、服务治理、高并发设计和一系列常见系统架构设计话题,涵盖了亿级用户应用后台的大部分要素。本书图文并茂、行文流畅,非常适合互联网后台开发工程师深度阅读。 
——秦磊◇某海外社交产品业务架构负责人 

本书深入探讨了高并发系统设计,从大厂的视角解读技术栈选择、高并发处理等核心内容。无论是大厂的工程师,还是计划入行的学生,都能从中借鉴宝贵的实战经验。本书是我们提升高并发系统设计能力的理想读物。 
——郝萌◇哈尔滨工业大学讲师,CCF高性能专委会执行委员 

这是一本架构师参考指南,凝聚了作者多年的工作经验,干货满满。如果你初出茅庐,正在找工作,或者刚刚走上后端工程师的工作岗位,则建议认真阅读本书,因为它能帮助你全面了解后端工程技术体系;如果你已经工作了几年,渴望进一步提高,则也建议阅读本书,因为你能从中学习作者对过往经验的梳理和结构化输出方法。 
——丛小亮◇字节跳动资深研发工程师"

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP