分布式服务框架原理与实践 李林锋 著 PDF 文档
将系统拆分为不同的服务,每个服务负责完成特定的功能。这样可以将一个大型的系统拆分为多个小型的、独立的服务。这有助于解耦系统,并允许每个服务独立地进行扩展和升级。服务之间可以通过 REST API 或者消息队列进行通信。
目录
第 1 章 应用框架演进
1.1 传统垂直应用架构
1.1.1 垂直应用架构介绍
1.1.2 垂直应用架构面临的挑战
1.2 RPC 架构
1.2.1 RPC 框架原理
1.2.2 最简单的 RPC 框架实现
1.2.3 业界主流 RPC 框架
1.2.4 RPC 框架面临的挑战
1.3 SOA 服务化架构
1.3.1 面向服务设计的原则
1.3.2 服务治理
1.4 微服务架构
1.4.1 什么是微服务
1.4.2 微服务架构对比 SOA
1.5 总结
第 2 章 分布式服务框架入门
2.1 分布式服务架构诞生背景
2.1.1 应用从集中式走向分布式
2.1.2 亟需服务治理
2.2 业界分布式服务框架介绍
2.2.1 阿里 Dubbo
2.2.2 淘宝 HSF
2.2.3 亚马逊 Coral Service
2.3 分布式服务框架设计
2.3.1 架构原理
2.3.2 功能特性
2.3.3 性能特性
2.3.4 可靠性
2.3.5 服务治理
2.4 总结
第 3 章 通信框架
3.1 关键技术点分析
3.1.1 长连接还是短连接
3.1.2 BIO 还是 NIO
3.1.3 自研还是选择开源 NIO 框架
3.2 功能设计
3.2.1 服务端设计
3.2.2 客户端设计
3.3 可靠性设计
3.3.1 链路有效性检测
3.3.2 断开重连机制
3.3.3 消息缓存重发
3.3.4 资源优雅释放
3.4 性能设计
3.4.1 性能差的三宗罪
3.4.2 通信性能三原则
3.4.3 高性能之道
3.5 最佳实践
3.6 总结
第 4 章 序列化和反序列化
4.1 几个关键概念澄清
4.1.1 序列化与通信框架的关系
4.1.2 序列化与通信协议的关系
4.1.3 是否需要支持多种序列化
4.2 功能设计
4.2.1 功能丰富度
4.2.2 跨语言支持
4.2.3 兼容性
4.2.4 性能
4.3 扩展性设计
4.3.1 内置的序列化/反序列化功能类
4.3.2 反序列化扩展
4.3.3 序列化扩展
4.4 最佳实践
4.4.1 接口的前向兼容性规范
4.4.2 高并发下的稳定系
4.5 总结
第 5 章 协议栈
5.1 关键技术点分析
5.1.1 是否支持多协议
5.1.2 公有协议还是私有协议
5.1.3 集成开源还是自研
5.2 功能设计
5.2.1 功能描述
5.2.2 通信模型
5.2.3 通信消息定义
5.2.4 协议栈消息序列化的字段类型
5.2.5 协议消息的序列化和反序列化
5.2.6 链路创建
5.2.7 链路关闭
5.3 可靠性设计
5.3.1 客户端连接超时
5.3.2 客户端重连机制
5.3.3 客户端重复握手保护
5.3.4 消息缓存重发
5.3.5 心跳机制
5.4 安全性设计
5.5 最佳实践——协议的前后兼容性
5.6 总结
第 6 章 服务路由
6.1 透明化路由
6.1.1 基于服务注册中心的订阅发布
6.1.2 消费之缓存服务提供者地址
6.2 负载均衡
6.2.1 随机
6.2.2 轮询
6.2.3 服务调用时延
6.2.4 一致性哈希
6.2.5 粘滞连接
6.3 本地路由优先策略
6.3.1 injvm 模式
6.3.2 innative 模式
6.4 路由规则
6.4.1 条件路由规则
6.4.2 脚本路由规则
6.5 路由策略定制
6.6 配置化路由
6.7 最佳实践——多机房路由
6.8 总结
第 7 章 集群容错
7.1 集群容错场景
7.1.1 通信链路故障
7.1.2 服务端超时
7.1.3 服务端调用失败
7.2 容错策略
7.2.1 失败自动切换(Failover)
7.2.2 失败通知(Failback)
7.2.3 失败缓存(Failcache)
7.2.4 快速失败(Failfast)
7.2.5 容错策略扩展
7.3 总结
第 8 章 服务调用
8.1 几个误区
8.1.1 NIO 就是异步服务
8.1.2 服务调用天生就是同步的
8.1.3 异步服务调用性能更高
8.2 服务调用方式
8.2.1 同步服务调用
8.2.2 异步服务调用
8.2.3 并行服务调用
8.2.4 泛化调用
8.3 最佳实践
8.4 总结
第 9 章 服务注册中心
9.1 几个概念
9.1.1 服务提供者
9.1.2 服务消费者
9.1.3 服务注册中心
9.2 关键功能特性设计
9.2.1 支持对等集群
9.2.2 提供 CRUD 接口
9.2.3 安全加固
9.2.4 订阅发布机制
9.2.5 可靠性
9.3 基于 ZooKeeper 的服务注册中心设计
9.3.1 服务订阅发布流程设计
9.3.2 服务健康状态检测
9.3.3 对等集群防止单点故障
9.3.4 变更通知机制
9.4 总结
第 10 章 服务发布和引用
10.1 服务发布设计
10.1.1 服务发布的几种方式
10.1.2 本地实现类封装成代理
10.1.3 服务发布成指定协议
10.1.4 服务提供者信息注册
10.2 服务引用设计
10.2.1 本地接口调用转换成远程服务调用
10.2.2 服务地址本地缓存
10.2.3 远程服务调用
10.3 最佳实践
10.3.1 对等设计原则
10.3.2 启动顺序
10.3.3 同步还是异步发布服务
10.3.4 警惕网络风暴
10.3.5 配置扩展
10.4 总结
第 11 章 服务灰度发布
11.1 服务灰度发布流程设计
11.1.1 灰度环境准备
11.1.2 灰度规则设置
11.1.3 灰度规则下发
11.1.4 灰度路由
11.1.5 失败回滚
11.1.6 灰度发布总结
11.2 总结
第 12 章 参数传递
12.1 内部传参
12.1.1 业务内部参数传递
12.1.2 服务框架内部参数传递
12.2 外部传参
12.2.1 通信协议支持
12.2.2 传参接口定义
12.3 最佳实践
12.3.1 防止参数互相覆盖
12.3.2 参数生命周期管理
12.4 总结
第 13 章 服务多版本
13.1 服务多版本管理设计
13.1.1 服务版本号管理
13.1.2 服务提供者
13.1.3 服务消费者
13.1.4 基于版本号的服务路由
13.1.5 服务热升级
13.2 与 OSGI 的对比
13.2.1 模块化开发
13.2.2 插件热部署和热升级
13.2.3 不适用 OSGI 的其他理由
13.3 总结
第 14 章 流量控制
14.1 静态流控
14.1.1 传统静态流控设计方案
14.1.2 传统方案的特点
14.1.3 动态配额分配制
14.1.4 动态配额申请制
14.2 动态流控
14.2.1 动态流控因子
14.2.2 分级流控
14.3 并发控制
14.3.1 服务端全局控制
14.3.2 服务消费流控
14.4 连接控制
14.4.1 服务端连接数流控
14.4.2 服务消费者连接数流控
14.5 并发和连接控制算法
14.6 总结
第 15 章 服务降级
15.1 屏蔽降级
15.1.1 屏蔽降级的流程
15.1.2 屏蔽降级的设计实现
15.2 容错降级
15.2.1 容错降级的工作原理
15.2.2 运行时容错降级
15.3 业务层降级
15.4 总结
第 16 章 服务优先级调度
16.1 设置服务优先级
16.2 线程调度器方案
16.3 Java 优先级队列
16.4 加权优先级队列
16.5 服务迁入迁出
16.6 总结
第 17 章 服务治理
17.1 服务治理技术的历史变迁
17.1.1 SOA Governance
17.1.2 分布式服务框架服务治理
17.1.3 AWS 云端微服务治理
17.2 应用服务化后面临的挑战
17.2.1 跨团队协作问题
17.2.2 服务的上下线管控
17.2.3 服务安全
17.2.4 服务 SLA 保障
17.2.5 故障快速定界定位
17.3 服务治理
17.3.1 服务治理架构设计
17.3.2 运行态服务治理功能设计
17.3.3 线下服务治理
17.3.4 安全和权限管理
17.4 总结
第 18 章 分布式消息跟踪
18.1 业务场景分析
18.1.1 故障的快速定界定位
18.1.2 调用路径分析
18.1.3 调用来源和去向分析
18.2 分布式消息跟踪系统设计
18.2.1 系统架构
18.2.2 埋点日志
18.2.3 采样率
18.2.4 采集和存储埋点日志
18.2.5 计算和展示
18.2.6 调用链扩展
18.3 总结
第 19 章 可靠性设计
19.1 服务状态监测
19.1.1 基于服务注册中心状态检测
19.1.2 链路有效性状态检测机制
19.2 服务健康度检测
19.3 服务故障隔离
19.3.1 进程级故障隔离
19.3.2 VM 级故障隔离
19.3.3 物理机故障隔离
19.3.4 机房故障隔离
19.4 其他可靠性特性
19.4.1 服务注册中心
19.4.2 监控中心
19.4.3 服务提供者
19.5 总结
第 20 章 微服务架构
20.1 微服务架构产生的历史背景
20.1.1 研发成本挑战
20.1.2 运维成本高
20.1.3 新需求上线周期长
20.2 微服务架构带来的改变
20.2.1 应用解耦
20.2.2 分而治之
20.2.3 敏捷交付
20.3 微服务架构解析
20.3.1 微服务划分原则
20.3.2 开发微服务
20.3.3 基于 Docker 容器部署微服务
20.3.4 治理和运维微服务
20.3.5 特点总结
20.3 总结
第 21 章 服务化最佳实践
21.1 性能和时延问题
21.1.1 RPC 框架高性能设计
21.1.2 业务最佳实践
21.2 事务一致性问题
21.2.1 分布式事务设计方案
21.2.2 分布式事务优化
21.3 研发团队协作问题
21.3.1 共用服务注册中心
21.3.2 直连提供者
21.3.3 多团队进度协同
21.3.4 服务降级和 Mock 测试
21.3.5 协同调试问题
21.3.6 接口前后兼容性
21.4 总结
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/12/vno8knxqOmistvYH.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论