架构演变实战 从单体到微服务再到中台
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121436123
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:420
- 出版时间:2022-07-01
- 条形码:9787121436123 ; 978-7-121-43612-3
本书特色
——1. 难得的微服务架构技术选型或实施的优秀参考书—— 本书以单体架构为开篇,实战+基础理论相结合,逐步升级为微服务架构,并优化微服务架构的每个细节,*终升级为中台架构,整个升级思路讲解清晰。 ——2. 详尽剖析微服务实践细节、问题及解决办法、参考价值极高—— 本书详尽阐述了架构选型、拆分、实施、优化等微服务落地过程中所遇到的问题和解决办法,既有整体的理论性指导,又有对Dubbo、Spring Cloud等微服务工具的详尽解释。 ——3. 相当的诚意之作,无私奉上有针对性、接地气的架构范式、演进思路及落地策略—— 本书的*大特点是贴合业务来谈架构,针对不同的业务场景给出了有针对性、接地气的架构范式、演进思路及落地策略,同时融合了潘老师基于自身实战经验的深度总结。 ——4. 从实际案例出发,全程贴合案例讲解,更贴合现实和工作需求—— 本书从一个创业公司由单体架构向微服务架构转型的实际案例出发,向读者展示了构建分布式系统的全生命周期。通过翔实的案例剖析、深度的原理讲解及实操分享,读者不仅知其然,更能知其所以然。
内容简介
本书从搭建单体架构遇到的瓶颈开始,通过真实案例介绍从单体架构转型为微服务架构及中台架构过程中遇到的困难、问题与具体解决方法。全书共计9章,前3章以案例和原理为基础,介绍微服务的优劣势及其使用场景;第4~6章描述如何基于单体架构搭建和优化微服务架构;第7~8章介绍如何掌握测试、部署交付流程等软件工程中的各个关键环节和核心要素;第9章讲解在多元化业务场景下如何构建中台架构,以实现通用能力的下沉,从而形成共享服务,达到资源使用率的优选化。本书适合技术管理者、架构师和有一定开发基础的技术人员阅读,尤其适合已进入或即将进入微服务架构和中台架构领域的相关人员阅读。希望本书能为读者提供一些技术路线上的启发和指引,帮其少走弯路。
目录
》》》第1章 从单体架构开始 1《《《
1.1 单体应用优化之路 2
1.1.1 应用无状态 3
1.1.2 数据读/写分离 4
1.1.3 分库分表 5
1.2 比性能更可怕的问题 7
1.3 微服务框架选型 8
1.3.1 总体架构对比 9
1.3.2 编程方式对比 10
1.4 **次失败的微服务重构 10
》》》第2章 服务拆分与工程划分 14《《《
2.1 实施微服务架构的前置条件 15
2.1.1 思想统一 15
2.1.2 充分培训 16
2.1.3 标准化的工程 17
2.1.4 自动化部署 18
2.2 服务拆分的角度和原则 19
2.2.1 服务拆分的角度 20
2.2.2 服务拆分的原则 21
2.3 服务拆分案例剖析 23
2.4 项目框架自动化 26
2.5 微服务的数据请求模型 31
2.6 日志收集和控制 33
》》》第3章 微服务模式开发 39《《《
3.1 服务治理的核心概念 40
3.1.1 分布式系统 40
3.1.2 RPC框架 43
3.1.3 服务治理 44
3.2 注册中心简介 47
3.2.1 ZooKeeper 47
3.2.2 Nacos 51
3.3 Provider的配置与发布 53
3.4 Consumer的配置 56
3.5 对负载均衡策略的选择 58
3.6 Dubbo的常用特性 64
3.6.1 服务的多版本管理 65
3.6.2 上下文信息 66
3.6.3 隐式传参 67
3.7 SPI原理介绍 67
3.7.1 Java SPI的执行流程 68
3.7.2 Dubbo SPI的执行流程 70
3.7.3 Dubbo SPI原理解析 74
3.8 Filter的扩展使用场景 77
3.8.1 Dubbo Filter的执行过程 77
3.8.2 Dubbo Filter的使用场景 81
3.9 Dubbo服务发布和调用分析 85
3.9.1 标签解析 87
3.9.2 服务注册和发布流程 88
3.9.3 服务引用流程和服务调用流程 91
》》》第4章 实施微服务架构的全过程 94《《《
4.1 前后端分离 95
4.2 服务无状态化 96
4.3 统一认证服务 97
4.3.1 令牌方式 98
4.3.2 JWT方式 100
4.4 微服务设计模式 105
4.5 微服务实战详解 106
4.5.1 需求背景 107
4.5.2 技术选型 108
4.5.3 设计数据库表 110
4.5.4 代码结构模型 114
4.5.5 服务发布上线 120
4.6 线上问题及解决方案 122
4.6.1 服务线程池满 122
4.6.2 数据库的CPU占用率飙高 124
4.6.3 无止境的循环依赖 125
》》》第5章 微服务进阶优化 126《《《
5.1 缓存分类 127
5.1.1 CDN缓存 128
5.1.2 本地缓存 129
5.1.3 分布式缓存 135
5.2 微服务缓存优化 137
5.2.1 单级缓存 137
5.2.2 多级缓存 138
5.2.3 缓存管理策略 140
5.3 串行转并行 144
5.3.1 串行、并行的概念 144
5.3.2 将串行调用转为并行调用的方法 145
5.3.3 案例实战 147
5.4 服务的熔断与降级 150
5.4.1 熔断器的工作原理 150
5.4.2 服务降级的原理 152
5.4.3 Hystrix详解 153
5.4.4 Sentinel详解 158
5.4.5 熔断器与Dubbo的集成 165
5.4.6 状态监控 168
5.5 限流 170
5.5.1 限流算法 170
5.5.2 如何进行限流 171
5.5.3 单机限流 171
5.5.4 分布式限流 172
5.5.5 混合限流 174
5.6 接口的幂等性 174
5.6.1 为什么需要幂等性 175
5.6.2 如何保证接口的幂等性 175
5.6.3 幂等实战 179
5.7 配置中心 180
5.7.1 常见的配置方式 180
5.7.2 配置中心概述 181
5.7.3 案例实战 182
5.7.4 案例说明 183
5.8 消息队列 183
5.8.1 为什么使用消息队列 183
5.8.2 消息队列的使用场景 185
5.9 分布式事务 189
5.9.1 事务的特性 189
5.9.2 分布式事务方案 191
》》》第6章 亿级流量网关开发实战 200《《《
6.1 为什么使用网关 201
6.1.1 网关的职责和工作原理 202
6.1.2 核心功能 203
6.2 网关的高可用性设计 207
6.2.1 高可用性的衡量标准 207
6.2.2 影响系统高可用性的因素 209
6.2.3 提升系统可用性的常用方法 209
6.3 从零开始自研高性能异步网关 211
6.3.1 API协议的制定 211
6.3.2 API的注册与发布 211
6.3.3 异步化请求 215
6.3.4 泛化调用 220
6.3.5 功能插件化 223
6.3.6 请求快照 226
6.3.7 API生命周期 227
6.4 网关优化 228
6.4.1 资源隔离 228
6.4.2 业务线程分离 230
6.4.3 Epoll加速 231
6.4.4 高速缓存 232
6.4.5 自恢复能力 234
6.5 自研网关所遇到的难题 234
6.5.1 网关找不到服务提供者 235
6.5.2 多余的class字段 236
6.5.3 错误传值 236
6.5.4 日期格式异常 237
6.5.5 自定义异常失效 238
6.5.6 源码修改如何集成 239
》》》第7章 微服务之服务测试的演进 242《《《
7.1 测试模型的演进 243
7.1.1 倒三角测试模型 243
7.1.2 金字塔测试模型 244
7.1.3 橄榄球测试模型 245
7.1.4 契约测试模型 246
7.2 微服务架构的测试流程 247
7.2.1 测试策略 247
7.2.2 单元测试 249
7.2.3 API测试 252
7.2.4 服务框架测试 254
7.3 构建契约测试平台 255
7.3.1 测试面临的阻碍 255
7.3.2 契约测试的核心思想 258
7.3.3 自研契约测试平台 260
7.3.4 数据采集流程 264
7.3.5 契约测试的核心代码 269
7.3.6 契约验证流程 277
7.4 混沌工程 280
7.4.1 理解混沌工程 281
7.4.2 如何实施混沌实验 283
7.4.3 CPU满载实验 284
7.4.4 磁盘写满实验 285
7.4.5 内存负载实验 286
7.4.6 数据库调用延时实验 286
7.4.7 Redis调用延时实验 287
7.4.8 Dubbo服务延时实验 288
7.4.9 Dubbo线程池满实验 289
7.4.10 混沌实验的可视化 290
》》》第8章 容量预估与服务上线 291《《《
8.1 持续集成和持续交付 292
8.1.1 为什么需要持续集成和持续交付 292
8.1.2 持续集成和持续交付的流程 296
8.1.3 搭建持续集成平台 301
8.1.4 持续集成项目实战 324
8.2 灰度发布 337
8.2.1 灰度发布介绍 338
8.2.2 灰度发布的流程 340
8.2.3 灰度发布实战 343
8.3 搭建全链路压测平台 348
8.3.1 实施全链路压测的原则 349
8.3.2 流量染色与数据隔离 351
8.3.3 如何生成压测流量 353
8.3.4 全链路压测实战 355
8.4 生产环境容量预估 367
8.4.1 容量预估的参考指标 368
8.4.2 硬件选型 370
8.4.3 容量预估实战 371
》》》第9章 中台架构设计 376《《《
9.1 什么是中台 377
9.1.1 研发乱象 377
9.1.2 中台的定义 379
9.1.3 中台的分类 380
9.1.4 企业是否需要中台 381
9.1.5 中台对企业的价值 382
9.2 业务中台的搭建步骤 382
9.2.1 高管的介入决定成败 382
9.2.2 独立中台的产品经理 385
9.2.3 独立中台的技术团队 389
9.2.4 需求边界管理 390
9.2.5 业务中台的架构设计 391
9.3 业务中台实战 392
9.3.1 需求分析 393
9.3.2 架构实现 395
9.3.3 业务流程 396
9.3.4 业务线接入 399
9.4 中台的绩效考核标准 401
9.5 中台的弊端 403
9.5.1 不同业务线的需求不具备共性 403
9.5.2 需求的优先级被降低 403
9.5.3 项目组沟通难 404
9.5.4 业务线被动升级 405
9.6 实战总结 406
节选
推荐序 与潘老师相识多年,曾听他饱含真情地分享设计经验,如今喜闻其大作即将面世,又得作序之邀,荣幸之至。 软件工程系统的构建殊非易事,项目多毁于沟通。敏捷项目人士常说“团队规模*好符合‘两个比萨饼’原则”,想必他们受够了沟通之苦。但是,并没有方法能够很好地规避这一难题。尤其是随着企业的成长,各种问题会日益突出。这些问题反映到架构上,就是如何遵循一定的原则处理结构和关系,尽管这些原则极有可能并非“一定”要遵循。这些原则需要团队、企业自己逐渐磨合、领悟,这也是企业自己逐渐形成方法论、形成架构观的过程。本书正反映了这样的过程。 经验学习并非都来自成功案例,更重要的是对失败的总结:避免重复犯错才是成功的开始。本书第1章就将一次“翻车”的微服务改造案例生动地呈现给读者,这是*好的代入方式。毕竟,所有的架构学习就像学习骑自行车一样,肯定是从“摔跟头”学起的。从“摔跟头”中找到平衡感,才是逐渐习得服务划分、规范设计的路径,才是架构师逐渐知道何以自处,以及整个团队知道架构应当何以处之的过程。 本书基于潘老师自己的经验,对中台架构及其实现做了很客观的阐述,利弊解释都颇富“实感”。没有完美的架构,也没有完美的方法,顾“此”极有可能失“彼”,这也再度验证了很多人对架构的看法。架构即平衡之道,架构即取舍之道。架构理论有共性,架构实施则充满个性,需要在实施中时刻提醒自己,在别人的经验和自己的环境中做好取舍,在别人的能力和自己的限制之间做好平衡。不然,本书第1章的“翻车”事故,就有可能在你实践本书第9章的设计时重现。大的成功不是很容易复现,大的失败却很容易再临。 ——《企业级业务架构设计:方法论与实践》《聚合架构:面向数字生态的构件化企业架构》作者 付晓岩
作者简介
潘志伟 某科技公司技术总监,阿里云MVP、QCon演讲嘉宾,拥有十多年的软件架构设计经验,擅长分布式架构与微服务架构设计及中台规划,目前带领研发团队承担系统的分析、架构设计、实施、演进,以及团队管理和培训等工作,有独到的团队建设和管理经验。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0