• 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
  • 架构设计2.0:大型分布式系统架构方法论与实践
21年品牌 40万+商家 超1.5亿件商品

架构设计2.0:大型分布式系统架构方法论与实践

25 2.4折 105 九品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者余春龙

出版社电子工业出版社

出版时间2021-12

版次1

印刷时间2022-01

印次1

装帧其他

货号119-3

上书时间2024-06-24

敏杰书店

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

   商品详情   

品相描述:九品
平装本,16开本
图书标准信息
  • 作者 余春龙
  • 出版社 电子工业出版社
  • 出版时间 2021-12
  • 版次 1
  • ISBN 9787121425073
  • 定价 105.00元
  • 装帧 其他
  • 页数 320页
【内容简介】
本书深刻总结了作者在大型互联网公司长期的实战经验,系统化地阐述了构建大型分布式系统所需要的技术架构与业务架构方法论,并辅与详尽的实践剖析。全书分为三大部分:第1部分完整讨论了分布式架构的几大核心问题,包括高并发、高可靠性、高可用、数据一致性(包括分布式事务、Paxos/Raft一致性算法)、跨城容灾与异地多活、CAP理论;第2部分从业务架构思维、需求分析、业务建模、领域驱动设计与微服务等角度探讨业务架构;第3部分是案例实战,通过众多的业界实际案例来对理论有一个更为直观的介绍。通过本书,读者可以对构建大型复杂系统的方法论有全局的认识,对软件架构的核心能力有深刻的理解,对个人的技术成长起到一定的借鉴作用,提升思维认知。本书不仅适合工程师、架构师阅读,也适合企业系统开发人员在内的软件开发从业人员阅读。
【作者简介】
余春龙,中科院软件所硕士毕业,先后在多家一线互联网公司任架构师,历经各种大规模研发团队的架构实践,在海量高并发高可用架构、业务建模、领域驱动设计、技术规划与技术管理等方面具备丰富的工程经验,形成了自己完整的一套架构方法论。
【目录】
第1部分  分布式架构

第1章  高并发4

1.1  问题分类4

1.1.1  侧重于“高并发读”的系统4

1.1.2  侧重于“高并发写”的系统6

1.1.3  同时侧重于“高并发读”和“高并发写”的系统7

1.2  高并发读8

1.2.1  策略1:动静分离与CDN加速8

1.2.2  策略2:加缓存9

1.2.3  策略3:并发读与Pipeline10

1.2.4  策略4:批量读12

1.2.5  策略5:重写轻读12

1.2.6  总结:读写分离(CQRS架构)14

1.3  高并发写16

1.3.1  策略1:数据分片16

1.3.2  策略2:任务分片17

1.3.3  策略3:异步化与Pipeline19

1.3.4  策略4:批量26

1.3.5  策略5:串行化+多进程单线程+异步I/O27

第2章  高可靠29

2.1  容量评估与规划29

2.1.1  理论基础:吞吐量、响应时间与并发数三者关系29

2.1.2  容量规划31

2.1.3  单机QPS估算方法1: CPU密集型与I/O密集型的区分32

2.1.4  单机QPS估算方法2:压力测试33

2.2  过载保护:限流与熔断35

2.2.1  限流的两种限制维度35

2.2.2  单机限流的算法35

2.2.3  单机限流的实现37

2.2.4  中央限流40

2.2.5  熔断41

2.3  超时与重试42

2.4  隔离43

2.5  有损服务与降级44

2.6  灰度发布、备份与回滚45

2.7  监控体系与日志报警47

第3章  分布式事务50

3.1  随处可见的分布式事务问题51

3.1.1  缓存和数据库的一致性问题51

3.1.2  消息中间件和数据库的一致性问题51

3.1.3  两个数据库的一致性问题51

3.1.4  服务和数据库的一致性问题51

3.1.5  两个服务的一致性问题52

3.1.6  两个文件的一致性问题52

3.2  分布式事务解决方案汇总52

3.2.1  2PC52

3.2.2  终一致性:种实现方案56

3.2.3  终一致性:第二种实现方案(基于事务消息)59

3.2.4  TCC61

3.2.5  事务状态表+事务补偿63

3.2.6  同步双写(多写)+异步对账64

3.2.7  妥协方案:弱一致性+基于状态的事后补偿66

3.2.8  妥协方案:重试+回滚+报警+人工修复68

3.2.9  阿里云Seata框架68

3.2.10  总结73

第4章  高可用74

4.1  高可用架构的思维框架74

4.1.1  如何实现故障探测75

4.1.2  如何解决脑裂问题75

4.1.3  如何做到数据一致性76

4.1.4  如何做到对客户端透明76

4.1.5  如何解决高可用依赖的连环套问题76

4.2  接入层高可用78

4.2.1  DNS层高可用:广域网负载均衡79

4.2.2  接入网关高可用:局域网负载均衡79

4.2.3  Nginx高可用81

4.2.4  Tomcat高可用81

4.3  业务逻辑层(微服务层)高可用82

4.4  存储层高可用83

4.4.1  RedisCluster的高可用案例83

4.4.2  HDFS的高可用案例85

第5章  高可用:多副本一致性算法89

5.1  高可用且强一致性到底有多难89

5.1.1  Kafka的消息丢失问题89

5.1.2  Kafka的消息错乱问题93

5.1.3  MySQL半同步复制数据不一致问题94

5.2  Paxos算法解析96

5.2.1  Paxos解决什么问题96

5.2.2  复制状态机99

5.2.3  一个朴素而深刻的想法101

5.2.4  Basic Paxos算法102

5.2.5  Multi Paxos算法105

5.3  Raft算法解析108

5.3.1  为“可理解性”而设计108

5.3.2  单点写入108

5.3.3  日志结构109

5.3.4  阶段1:Leader选举113

5.3.5  阶段2:日志复制115

5.3.6  阶段3:恢复阶段116

5.3.7  安全性保证116

5.4  Zab算法解析119

5.4.1  复制状态机与Primary-Backup System119

5.4.2  zxid121

5.4.3  “序”:乱序提交与顺序提交122

5.4.4  Leader选举:FLE算法124

5.4.5  正常阶段:2阶段提交125

5.4.6  恢复阶段126

5.5  三种算法对比与工程实现127

第6章  高可用:跨城容灾与异地多活129

6.1  跨城的关键物理约束:时延129

6.2  多IDC无复制架构130

6.2.1  单写多读架构130

6.2.2  各IDC自治架构132

6.3  同城同步复制,跨城异步复制:2地3中心133

6.4  跨城同步复制:3地5中心133

6.5  跨城异步复制135

6.5.1  不能容忍数据不一致:实现部分的强一致136

6.5.2  可以容忍数据不一致:事后修复137

6.5.3  加快异步复制速度137

6.6  单元化138

6.6.1  到底什么是单元化138

6.6.2  什么系统不能单元化140

第7章  CAP理论142

7.1  CAP理论的误解142

7.2  现实世界不存在“强一致性”(PACELC理论)143

第2部分  业务架构

第8章  业务架构定义148

8.1  各式各样的方法论148

8.2  什么不是业务架构149

8.3  以终为始:业务架构到底解决哪些问题150

第9章  深刻理解现实世界:识别“真正的”需求153

9.1  探究问题的本源153

9.2  系统化思维154

9.3  信息传播的递减效应155

9.4  主要矛盾与次要矛盾156

9.5  产品手段与技术手段的权衡156

第10章  深刻理解现实世界:从整体上去看待需求158

10.1  利益相关者分析:看需求先看人158

10.2  金字塔原理:不重不漏地拆解问题160

10.3  需求的两种表现形式:业务流程与业务规则162

10.4  “业务”的闭环性163

第11章  不同粒度的建模方法与原则165

11.1  单个系统内部的建模方法与原则165

11.1.1  建模的通用思维:搭积木165

11.1.2  面向对象建模的基本步骤167

11.2  问题空间169

11.2.1  深刻理解专业名词169

11.2.2  重要信息“显性化”170

11.2.3  抽象171

11.3  解决方案空间174

11.3.1  重构174

11.3.2  设计模式175

11.3.3  面向对象的五大原则(SOLID原则)178

11.4  跨系统、跨团队的建模方法与原则179

11.4.1  康威定律179

11.4.2  领域的划分:高内聚与低耦合181

11.4.3  边界思维:接口的设计比实现重要得多182

11.4.4  多视角描述同一个架构:架构4+1/5+1视图184

第12章  常用架构模式186

12.1  分层架构模式与“伪分层”186

12.2  管道-过滤器架构模式189

12.3  状态机架构模式190

12.4  业务切面/业务闭环架构模式192

12.5  规则引擎193

12.5.1  什么是规则194

12.5.2  业务代码如何抽象成一条条规则194

12.5.3  规则描述语言DSL196

12.5.4  规则引擎的两种执行方式197

12.6  工作流引擎198

第13章  领域驱动设计200

13.1  传统开发模式:面向数据库表的“面条式”代码200

13.2  DDD的基本概念201

13.3  DDD的方法论203

13.3.1  领域模型和数据模型的区别203

13.3.2  基于DDD的分层架构203

13.3.3  领域模型和数据模型如何映射204

13.3.4  DDD中的读写分离模式206

第14章  DDD的折中与微服务架构207

14.1  软件建模本身的困难207

14.2  “无建模”带来的各种问题209

14.3  DDD的困难210

14.4  折中后的DDD211

14.4.1  宏观层面:遵循子域、限界上下文、微服务三者的映射关系211

14.4.2  微观层面:不遵循DDD的方法论212

14.5  三个不同层次的读写分离架构212

第3部分  案例实战

第15章  基础架构案例实战216

15.1  分布式锁216

15.1.1  分布式锁的使用场景216

15.1.2  分布式锁的常用实现方式与问题216

15.1.3  用串行化代替分布式锁217

15.2  服务注册与服务发现中心219

15.2.1  服务注册与服务发现中心的基本原理219

15.2.2  服务路由表的数据延迟与解决方案220

15.2.3  服务注册中心应该是AP系统,还是CP系统221

15.2.4  配置中心应该是AP系统,还是CP系统222

15.3  分布式ID生成系统222

15.3.1  全局,趋势递增223

15.3.2  全局,单调递增225

15.3.3  全局,连续递增229

第16章  C端业务系统案例实战230

16.1  电商库存系统230

16.1.1  业务背景与需求分析230

16.1.2  高并发读与写:中央缓存与本地缓存的权衡234

16.1.3  数据一致性:幂等问题238

16.1.4  数据一致性:扣减多个商品的原子性问题239

16.1.5  数据一致性:并发更新的锁问题239

16.1.6  数据一致性:流水和库存表如何对账240

16.1.7  业务架构进阶之一:一个库存模型同时支持自营与平台

              两个商业模式241

16.1.8  业务架构进阶之二:分区售卖问题243

16.1.9  业务架构进阶之三:供应链库存(不光要管售卖,还要管采购)244

16.1.10  业务架构进阶之四:以“单据”为中心的库存对账245

16.1.11  业务架构进阶之五:先采后卖,还是先卖后采247

16.2  秒杀系统249

16.2.1  需求分析249

16.2.2  异步秒杀与同步秒杀250

16.2.3  同步秒杀系统的设计252

16.2.4  防刷问题253

16.2.5  名额归还问题254

16.2.6  同步与异步的相结合254

16.2.7  层层限流,保护终的核心系统255

16.3  Feeds流255

16.3.1  需求分析255

16.3.2  无限长列表的实现256

16.3.3  写扩散和读扩散的相结合258

16.3.4  评论的实现259

第17章  B端业务系统案例实战261

17.1  规则引擎平台261

17.1.1  规则引擎的典型应用场景261

17.1.2  四种技术选型263

17.1.3  规则的存储与版本管理265

17.1.4  可视化规则编辑266

17.1.5  特征库、动作库管理268

17.1.6  特征数据库269

17.1.7  总结270

17.2  工作流引擎平台271

17.2.1  没有工作流引擎,如何做业务开发271

17.2.2
点击展开 点击收起

—  没有更多了  —

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

平装本,16开本
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP