• 分布式系统实战派――从简单系统到复杂系统
21年品牌 40万+商家 超1.5亿件商品

分布式系统实战派――从简单系统到复杂系统

全新正版 极速发货

68.45 6.3折 108 全新

库存31件

广东广州
认证卖家担保交易快速发货售后保障

作者张伟洋 著

出版社电子工业出版社

ISBN9787121490439

出版时间2024-11

装帧平装

开本其他

定价108元

货号1203454322

上书时间2024-12-03

曲奇书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
第1篇  后端体系架构认知
-
第1章  从单体架构到微服务架构的演变过程2
▲1.1  什么是单体架构2
1.1.1  一张图看懂单体架构2
1.1.2  单体架构的优、缺点3
▲1.2  从单体架构到集群架构――多台机器协同工作5
1.2.1  一张图看懂集群架构5
1.2.2  扩展系统――水平扩展和垂直扩展6
1.2.3  动态调整集群规模――弹性伸缩7
1.2.4  实现故障转移――借助心跳检测8
1.2.5  数据库读写分离――提高系统性能11
1.2.6  分布式数据库与分库分表――将大数据拆为小数据12
▲1.3  从集群架构到微服务架构――精细拆分业务14
1.3.1  一张图看懂微服务架构14
1.3.2  微服务架构的核心特性16
1.3.3  微服务架构与单体架构的区别17
1.3.4  为什么企业选择微服务架构18
1.3.5  微服务架构的基本组件19
1.3.6  设计微服务架构需要考虑的关键点20
▲1.4  微服务架构与分布式架构21
1.4.1  一张图看懂分布式架构与微服务架构22
1.4.2  什么是分布式架构23
1.4.3  微服务架构与分布式架构的区别23
1.4.4  在分布式系统中微服务是如何工作的25
▲1.5  从单体架构到微服务架构的迁移――让系统更稳定27
1.5.1  迁移到微服务架构需要考虑的因素28
1.5.2  迁移到微服务架构的步骤29
-
第2章  几张图了解后端系统31
▲2.1  一张图看懂整个后端系统架构31
2.1.1  CDN(内容分发网络)32
2.1.2  负载均衡器33
2.1.3  API网关35
2.1.4  分布式数据库集群38
2.1.5  分布式消息集群40
2.1.6  分布式缓存集群41
2.1.7  分布式文件集群44
2.1.8  分布式搜索集群46
2.1.9  服务配置与管理48
2.1.10  服务注册与发现49
2.1.11  服务治理与监控51
2.1.12  服务追踪52
▲2.2  一张图看懂分布式架构的组成53
▲2.3  一张图看懂本书的核心内容55
-
第3章  微服务间的交互60
▲3.1  为何微服务间需要交互60
3.1.1  对比单体应用与微服务应用的交互模式60
3.1.2  在电商系统中,用户下单业务的服务交互流程63
3.1.3  【实战】基于Spring Cloud实现服务之间的交互64
▲3.2  微服务间的通信方式――同步通信与异步通信71
3.2.1  什么是同步通信71
3.2.2  同步通信在电商系统中的痛点72
3.2.3  【实战】基于Spring Cloud实现简单的同步通信73
3.2.4  什么是异步通信75
3.2.5  异步通信的实现方式1――消息队列77
3.2.6  异步通信的实现方式2――事件驱动78
3.2.7  【实战】基于Spring Boot实现异步通信79
▲3.3  服务间的通信协议――从HTTP到gRPC82
3.3.1  HTTP、REST和RESTful流行的主要原因83
3.3.2  RESTful设计的痛点及解决办法84
3.3.3  【实战】基于Spring Boot搭建一个RESTful产品信息服务85
3.3.4  为何越来越多企业选择gRPC87
3.3.5  gRPC在电商系统中的应用88
3.3.6  对比gRPC与HTTP88
3.3.7  【实战】从零搭建gRPC服务89
-
第2篇  分布式技术专项
-
第4章  分布式系统的通信机制96
▲4.1  分布式系统组件之间是如何通信的96
4.1.1  RPC的工作原理96
4.1.2  【实战】基于RPC远程获取用户信息97
4.1.3  消息传递的工作原理98
4.1.4  【实战】使用RabbitMQ进行消息传递98
4.1.5  Socket网络通信的工作原理100
4.1.6  Socket网络通信在电商系统中的应用102
4.1.7  【实战】基于Socket实现网络通信102
▲4.2  分布式系统中的时钟、事件与一致性104
4.2.1  物理时钟与逻辑时钟105
4.2.2  逻辑时钟的代表Lamport时钟――事件排序工具106
4.2.3  【实战】使用Lamport时钟对事件进行排序107
4.2.4  【实战】使用Vector时钟跟踪事件因果关系111
▲4.3  CAP定理――三者不可兼得114
4.3.1  CAP定理基础114
4.3.2  网络分区115
4.3.3  CAP定理在电商系统中的应用116
4.3.4  高并发系统中一致性与可用性的权衡119
4.3.5  提高高并发系统可用性的策略121
-
第5章  分布式数据库122
▲5.1  分布式存储的原理122
5.1.1  一张图看清分布式存储与传统存储的区别122
5.1.2  数据分片与数据副本――分散读写负载123
5.1.3  一致性哈希算法――定位数据所在的节点125
5.1.4  【实战】在电商系统中使用一致性哈希算法127
5.1.5  数据恢复与自动故障转移――节点出现故障时的处理方案130
▲5.2  分布式关系数据库130
5.2.1  分布式关系数据库的优缺点131
5.2.2  【实战】对电商系统进行分库分表131
5.2.3  主从复制的工作原理134
5.2.4  【实战】配置主从复制135
5.2.5  在数据增长时无缝扩容数据库138
▲5.3  分布式NoSQL数据库139
5.3.1  主流的NoSQL数据库140
5.3.2  MongoDB基础140
5.3.3  【实战】操作MongoDB中的商品信息142
5.3.4  Redis基础143
5.3.5  【实战】使用Redis缓存和检索用户的浏览历史145
5.3.6  Cassandra基础147
5.3.7  【实战】使用Cassandra存储和分析温度传感器数据149
5.3.8  NoSQL的查询优化150
▲5.4  防范常见的数据库安全问题156
5.4.1  未授权访问156
5.4.2  数据泄露157
5.4.3  SQL注入攻击157
▲5.5  分布式数据库的数据迁移158
5.5.1  数据迁移的流程158
5.5.2  数据迁移的常见问题及解决方法159
5.5.3  【实战】将MySQL中的订单表数据迁移到MongoDB162

-
第6章  典型的分布式存储系统165
▲6.1  HDFS――Hadoop分布式文件系统165
6.1.1  HDFS的架构165
6.1.2  HDFS数据的存储与复制168
6.1.3  HDFS中的数据读取/写入流程169
6.1.4  【实战】使用HDFS170
6.1.5  【实战】使用命令行操作HDFS文件172
6.1.6  HDFS如何确保数据的高可用性175
▲6.2  HBase――分布式列式存储数据库176
6.2.1  HBase与传统关系数据库的区别176
6.2.2  HBase的数据模型及架构177
6.2.3  HBase的存储原理180
6.2.4  HBase的高可用机制与故障恢复机制182
6.2.5  【实战】部署HBase183
6.2.6  【实战】使用命令行操作HBase表数据185
6.2.7  【实战】优化HBase的性能187
▲6.3  Elasticsearch――分布式实时搜索和分析引擎194
6.3.1  Elasticsearch的基本概念194
6.3.2  Elasticsearch存储海量数据的原理――分片和副本195
6.3.3  Elasticsearch的集群架构和文档的读写原理196
6.3.4  【实战】搭建Elasticsearch高性能搜索引擎198
6.3.5  【实战】使用Elasticsearch索引与查询商品数据200
6.3.6  【实战】使用Elasticsearch分析用户购买行为201
6.3.7  【实战】使用Elasticsearch实时排名热门商品203
6.3.8  Elasticsearch是如何管理JVM堆内存的204
6.3.9  通过缓存提高Elasticsearch的查询效率205
6.3.10  【实战】使用Kibana可视化查询Elasticsearch数据207
6.3.11  【实战】使用Head监控Elasticsearch集群209
6.3.12  【实战】使用Java远程操作Elasticsearch员工信息212
-
第7章  分布式事务――确保分布式系统中的数据一致性218
▲7.1  什么是分布式事务218
7.1.1  三张图看懂分布式事务218
7.1.2  分布式事务面临的挑战及应对策略220
▲7.2  分布式事务的提交机制――两阶段提交与三阶段提交221
7.2.1  两阶段提交的工作原理221
7.2.2  两阶段提交带来的问题――死锁和性能瓶颈222
7.2.3  三阶段提交的工作原理223
7.2.4  对比三阶段提交与两阶段提交224
▲7.3  Saga模式――长事务的解决方案225
7.3.1  一张图看懂Saga模式225
7.3.2  在电商系统中实现Saga模式226
7.3.3  【实战】确保Saga模式下的数据一致性228
▲7.4  分布式事务的其他解决方案232
7.4.1  TCC模式――解决复杂业务中跨表和跨库资源锁定问题232
7.4.2  最大努力通知模式――确保数据的最终一致性235
7.4.3  可靠消息最终一致性策略――确保接收消息的可靠性237
▲7.5  分布式事务的企业级应用238
7.5.1  亚马逊、谷歌、阿里巴巴如何处理分布式事务238
7.5.2  阿里巴巴Seata框架的工作原理239
▲7.6  分布式锁――解决分布式系统中的并发控制问题241
7.6.1  ZooKeeper的集群架构和数据模型241
7.6.2  ZooKeeper的观察者模式243
7.6.3  分布式锁的实现方式及工作原理244
7.6.4  【实战】利用ZooKeeper实现分布式锁245
-
第8章  消息中间件――分布式系统中的异步通信利器248
▲8.1  为什么需要消息中间件248
8.1.1  一张图看懂消息中间件248
8.1.2  【实战】解决分布式系统中的通信、解耦、流量调节问题249
▲8.2  Kafka――分布式流处理中间件254
8.2.1  利用“放鸡蛋”的例子快速了解Kafka254
8.2.2  Kafka的集群架构255
8.2.3  Kafka处理海量消息的原理256
8.2.4  【实战】构建一个分布式、高性能的Kafka集群258
▲8.3  RabbitMQ――高可用的消息队列系统260
8.3.1  RabbitMQ的工作原理260
8.3.2  RabbitMQ在电商系统中的应用262
8.3.3  【实战】使用RabbitMQ实现电商系统的用户通知功能263
▲8.4  RocketMQ――低延迟、高可靠性的分布式消息中间件265
8.4.1  RocketMQ消息通信模式1――发布/订阅模式265
8.4.2  【实战】使用RocketMQ实现用户行为分析266
8.4.3  RocketMQ消息通信模式2――点对点模式268
8.4.4  【实战】使用RocketMQ实现物流跟踪269
▲8.5  根据业务需求选择合适的消息中间件271
▲8.6  在微服务中利用消息中间件实现事件驱动273
▲8.7  在分布式存储和计算中使用消息中间件274
8.7.1  【实战】进行分布式系统的数据同步和复制274
8.7.2  【实战】用消息中间件和日志收集工具进行日志处理275
8.7.3  【实战】构建一个搜索引擎用户行为分析系统278
-
第3篇  高可用与数据安全策略
-
第9章  冗余备份――数据的备份和容灾策略284
▲9.1  两张图看懂冗余备份284
▲9.2  选择合适的冗余备份策略286
9.2.1  【实战】热备、冷备和温备在电商系统中的应用286
9.2.2  【实战】通过数据冗余和应用冗余应对流量激增291
9.2.3  【实战】利用RAID技术实现磁盘冗余,提高数据可靠性293
9.2.4  【实战】基于AWS S3服务实现跨地域的冗余备份295
▲9.3  在生产环境中进行冗余备份296
9.3.1  【实战】在大规模数据中心中实施冗余备份296
9.3.2  【实战】在云存储环境中实施备份技术298
9.3.3  【实战】在系统故障时利用备份数据进行快速恢复300
-
第10章  高可用与异地多活――提高系统的稳定性和故障恢复能力302
▲10.1  一张图看懂高可用302
▲10.2  设计一个高可用架构303
10.2.1  识别和加固单点故障点303
10.2.2  【实战】通过添加冗余组件来提高系统的可用性305
10.2.3  【实战】在高并发场景下,使用“限流”防止系统崩溃306
10.2.4  【实战】在高并发场景下,使用“熔断”防止服务雪崩316
10.2.5  【实战】在高并发场景下,使用“降级”应对性能瓶颈319
▲10.3  利用容器化技术部署和管理项目323
10.3.1  什么是Docker323
10.3.2  【实战】利用Docker快速部署电商系统的商品服务324
10.3.3  什么是Kubernetes325
10.3.4  在项目开发中,何时用Docker,何时用Kubernetes327
10.3.5  【实战】利用Kubernetes管理电商系统的各个服务328
▲10.4  【实战】大型在线游戏的高可用策略330
10.4.1  负载均衡与集群化330
10.4.2  数据冗余与备份330
10.4.3  容灾与故障恢复331
10.4.4  无缝更新与维护331
▲10.5  异地多活――多地区数据中心的部署策略334
10.5.1  一张图看懂异地多活334
10.5.2  异地多活与高可用、容灾的关系337
-
第4篇  分布式系统项目设计
-
第11章  【项目实战】支持5000万用户同时在线的短视频系统设计340
▲11.1  业务分析340
11.1.1  需求分析340
11.1.2  业务流程分析341
▲11.2  架构设计341
▲11.3  存储设计343
11.3.1  使用MySQL存储视频元数据343
11.3.2  使用MongoDB存储视频标签数据344
11.3.3  使用Redis存储视频缓存数据345
11.3.4  使用Elasticsearch存储视频索引数据346
11.3.5  实现MySQL与Elasticsearch的数据同步350
11.3.6  使用HBase和HDFS存储视频文件352
▲11.4  利用CDN提升视频访问速度354
▲11.5  利用编码技术优化视频带宽355
▲11.6  视频个性化推荐设计356
11.6.1  数据收集与预处理357
11.6.2  特征提取与用户画像构建358
-
第12章  【项目实战】日均订单量8000万的外卖系统设计363
▲12.1  业务需求363
▲12.2  微服务架构设计364
▲12.3  数据库选择与设计365
▲12.4  缓存设计366
12.4.1  使用Redis和Memcached缓存数据366
12.4.2  构建外卖系统的缓存架构368
▲12.5  外卖员派单系统设计369
12.5.1  实时更新外卖员的地理位置369
12.5.2  设计外卖员派单算法372

内容摘要
许多开发者掌握了Java、Spring Boot和MySQL等基础知识后,能够搭建一个简单的单体系统,但面对复杂系统的构建和管理时,往往感到迷茫和力不从心:对于高性能、高可用、高并发的分布式系统一头雾水,束手无策。本书首先介绍从单体架构到微服务架构的演化过程,帮助读者开阔技术视野。然后带领读者摆脱单体架构的束缚,深入领略集群、主从架构、分库分表、读写分离、微服务、API网关、NoSQL数据库、HDFS、分布式事务等分布式技术的无限魅力。此外,本书深入剖析了如何运用Kafka、RabbitMQ、RocketMQ等消息中间件和Elasticsearch搜索引擎来解耦应用,如何利用Docker、Kubernetes快速部署与隔离应用,以及如何借助冗余备份、高可用和异地多活策略保障系统稳定运行,让系统焕发新生。最后通过“支持5000万用户同时在线的短视频系统设计”和“日均订单量8000万的外卖系统设计”两个实际项目将理论与实践结合,向读者展示如何将这些技术应用于真实的生产环境中,提升实际项目中的技术能力。本书适合已经掌握Java、Spring Boot、MySQL等知识,能够开发一个简单的后端应用,却在单体系统的束缚中力不从心、对后续的技术学习感到迷茫、对复杂系统不知所措、迫切期待实现技术飞跃的读者。本书为他们提供了从简单到复杂的技术成长路径和解决方案。

   相关推荐   

—  没有更多了  —

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

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