展开全部

主编推荐语

分布式服务框架实践经验,详细介绍Docker部署微服务。

内容简介

本书作者具有丰富的分布式服务框架、平台中间件的架构设计和实践经验,主导设计的华为分布式服务框架已经在全球数十个国家成功商用。书中依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。

目录

  • 版权信息
  • 内容简介
  • 序一
  • 序二
  • 前言
  • 第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.4 总结
  • 第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 总结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。