新書推薦:
《
巨人传(插图珍藏本)
》
售價:HK$
705.6
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:HK$
76.7
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:HK$
94.4
《
封建社会农民战争问题导论(光启文库)
》
售價:HK$
68.4
《
虚弱的反攻:开禧北伐
》
售價:HK$
92.0
《
中华内丹学典籍丛书:古书隐楼藏书汇校(上下)
》
售價:HK$
257.2
《
辞源.修订本(建国60周年纪念版)(全二册)
》
售價:HK$
1477.6
|
內容簡介: |
本书从搭建单体架构遇到的瓶颈开始,通过真实案例介绍从单体架构转型为微服务架构及中台架构过程中遇到的困难、问题与具体解决方法。全书共计9章,前3章以案例和原理为基础,介绍微服务的优劣势及其使用场景;第4~6章描述如何基于单体架构搭建和优化微服务架构;第7~8章介绍如何掌握测试、部署交付流程等软件工程中的各个关键环节和核心要素;第9章讲解在多元化业务场景下如何构建中台架构,以实现通用能力的下沉,从而形成共享服务,达到资源使用率的最大化。 本书适合技术管理者、架构师和有一定开发基础的技术人员阅读,尤其适合已进入或即将进入微服务架构和中台架构领域的相关人员阅读。希望本书能为读者提供一些技术路线上的启发和指引,帮其少走弯路。
|
關於作者: |
在上海若雅软件系统有限公司担任技术总监,负责工业互联网和大数据;诸葛天下(北京)信息技术有限公司担任上海研发中心负责人,负责车主端项目;鑫涌算力信息科技(上海)有限公司担任技术总监兼首席架构师,负责项目整体的技术架构和人员管理2019 Dubbo社区开发者日活动讲师、南京中台大会讲师2018 QCon讲师
|
目錄:
|
第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
|
|