Spring Cloud微服务:入门、实战与进阶

Spring Cloud微服务:入门、实战与进阶
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-06
版次: 1
ISBN: 9787111627319
定价: 89.00
装帧: 其他
开本: 16开
纸张: 胶版纸
59人买过
  • 这是一部从技术原理、工程实践和进阶提升3个维度讲解Spring
      Cloud微服务架构与开发的著作。
      作者在Spring
      Cloud微服务领域有丰富的工程实践经验,它将带领读者零基础入门Spring Cloud微服务,并快速掌握动手实践能力,*终进阶为Spring
      Cloud微服务领域的技术达人。
      全书共21章,分为4个部分:
      *部分准备篇(第1~2章)
      首先对微服务和Spring Cloud的概念、优劣势、功能模块等做了整体性的介绍,然后演示了如何搭建Spring Cloud的开发环境,*后对Spring Boot做了详细的介绍。
      第二部分基础篇(第3~7章)
      对Eureka 注册中心、客户端负载均衡 Ribbon、声明式 REST 客户端 Feign、Hystrix服务容错处理、API 网关等Spring Cloud的重要模块的技术原理、配置、使用等做了详尽的讲解。
      第三部分实战篇(第8~14章)
      对微服务架构中的普遍问题给出了实战解决方案,包括选择配置中心、自研发配置中心、分布式跟踪、微服务安全认证、Spring
      Boot Admin 管理微服务、快速生成API 文档等实用性内容。
      第四部分高级篇(15-21)
      重点讲解了Spring Cloud的扩展性的使用,比如API网关、微服务的缓存和存储、分布式事务解决方案、任务调度、分库分表,以及大量优秀的生产实践经验等。 Contents 目  录

    赞誉

    前言

    第一部分 准备篇

    第1章 Spring Cloud

    与微服务概述  2

    1.1 传统的单体应用  2

    1.1.1 改进单体应用的架构  2

    1.1.2 向微服务靠拢  3

    1.2 什么是微服务  4

    1.2.1 使用微服务架构的优势和劣势  4

    1.2.2 重构前的准备工作  5

    1.3 什么是Spring Cloud  5

    1.3.1 Spring Cloud模块介绍 

    6

    1.3.2 Spring Cloud版本介绍 

    6

    1.4 本章小结  7

    第2章 实战前的准备工作  8

    2.1 开发环境的准备  8

    2.2 Spring Boot入门 

    9

    2.2.1 Spring Boot简介 

    9

    2.2.2 搭建Spring Boot项目 

    9

    2.2.3 编写第一个REST接口 

    11

    2.2.4 读取配置文件  11

    2.2.5 profiles多环境配置  13

    2.2.6 热部署 

    13

    2.2.7 actuator监控 

    15

    2.2.8 自定义actuator端点 

    17

    2.2.9 统一异常处理  18

    2.2.10 异步执行  20

    2.2.11 随机端口  22

    2.2.12 编译打包  24

    2.3 Spring Boot Starter自定义 

    25

    2.3.1 Spring Boot Starter项目创建 

    25

    2.3.2 自动创建客户端  26

    2.3.3 使用Starter  27

    2.3.4 使用注解开启Starter自动构建 

    27

    2.3.5 使用配置开启Starter自动构建 

    28

    2.3.6 配置Starter内容提示 

    29

    2.4 本章小结  29

    第二部分 基础篇

    第3章 Eureka 注册中心 

    32

    3.1 Eureka  32

    3.2 使用 Eureka 编写注册中心服务  33

    3.3 编写服务提供者  35

    3.3.1 创建项目注册到Eureka  35

    3.3.2 编写提供接口  36

    3.4 编写服务消费者  37

    3.4.1 直接调用接口  37

    3.4.2 通过Eureka来消费接口  38

    3.5 开启 Eureka 认证 

    38

    3.6 Eureka 高可用搭建  39

    3.6.1 高可用原理  39

    3.6.2 搭建步骤  40

    3.7 常用配置讲解  41

    3.7.1 关闭自我保护  41

    3.7.2 自定义Eureka的

    InstanceID  41

    3.7.3 自定义实例跳转链接  42

    3.7.4 快速移除已经失效的服务信息  43

    3.8 扩展使用  44

    3.8.1 Eureka REST API  44

    3.8.2 元数据使用  46

    3.8.3 EurekaClient使用 

    47

    3.8.4 健康检查  49

    3.8.5 服务上下线监控  50

    3.9 本章小结  51

    第4章 客户端负载均衡

    Ribbon  52

    4.1 Ribbon  52

    4.1.1 Ribbon模块 

    52

    4.1.2 Ribbon 使用 

    53

    4.2 RestTemplate结合 Ribbon 使用 

    54

    4.2.1 使用RestTemplate与整合 Ribbon  54

    4.2.2 RestTemplate负载均衡示例  57

    4.2.3 @LoadBalanced注解原理 

    58

    4.2.4 Ribbon API 使用 

    62

    4.2.5 Ribbon 饥饿加载 

    63

    4.3 负载均衡策略介绍  64

    4.4 自定义负载策略  65

    4.5 配置详解  66

    4.5.1 常用配置  66

    4.5.2 代码配置 Ribbon  67

    4.5.3 配置文件方式配置Ribbon  67

    4.6 重试机制  68

    4.7 本章小结  69

    第5章 声明式REST客户端Feign  70

    5.1 使用 Feign 调用服务接口  70

    5.1.1 在Spring Cloud中集成Feign  71

    5.1.2 使用Feign调用接口 

    71

    5.2 自定义 Feign的配置 

    72

    5.2.1 日志配置  72

    5.2.2 契约配置  73

    5.2.3 Basic认证配置  74

    5.2.4 超时时间配置  75

    5.2.5 客户端组件配置  75

    5.2.6 GZIP压缩配置  76

    5.2.7 编码器解码器配置  77

    5.2.8 使用配置自定义Feign的配置 

    78

    5.2.9 继承特性  78

    5.2.10 多参数请求构造  80

    5.3 脱离 Spring Cloud 使用 Feign  80

    5.3.1 原生注解方式  81

    5.3.2 构建Feign对象 

    82

    5.3.3 其他配置  83

    5.4 本章小结  83

    第6章 Hystrix服务容错处理  84

    6.1 Hystrix  84

    6.1.1 Hystrix的简单使用  84

    6.1.2 回退支持  85

    6.1.3 信号量策略配置  86

    6.1.4 线程隔离策略配置  86

    6.1.5 结果缓存  87

    6.1.6 缓存清除  88

    6.1.7 合并请求  89

    6.2 在 Spring Cloud 中使用Hystrix  91

    6.2.1 简单使用  91

    6.2.2 配置详解  92

    6.2.3 Feign整合Hystrix服务容错  95

    6.2.4 Feign中禁用Hystrix  97

    6.3 Hystrix监控 

    97

    6.4 整合 Dashboard 查看监控数据  98

    6.5 Turbine 聚合集群数据  100

    6.5.1 Turbine使用 

    100

    6.5.2 context-path导致监控失败  101

    6.6 本章小结  102

    第7章 API网关 

    103

    7.1 Zuul简介  103

    7.2 使用Zuul构建微服务网关  104

    7.2.1 简单使用  104

    7.2.2 集成Eureka  105

    7.3 Zuul路由配置  105

    7.4 Zuul过滤器讲解  106

    7.4.1 过滤器类型  106

    7.4.2 请求生命周期  107

    7.4.3 使用过滤器  108

    7.4.4 过滤器禁用  109

    7.4.5 过滤器中传递数据  110

    7.4.6 过滤器拦截请求  111

    7.4.7 过滤器中异常处理  113

    7.5 Zuul容错和回退  115

    7.5.1 容错机制  115

    7.5.2 回退机制  116

    7.6 Zuul使用小经验  118

    7.6.1 /routes 端点 

    118

    7.6.2 /filters 端点 

    118

    7.6.3 文件上传  119

    7.6.4 请求响应信息输出  121

    7.6.5 Zuul自带的Debug功能  124

    7.7 Zuul高可用  126

    7.8 本章小结  127

    第三部分 实战篇

    第8章 API 网关之Spring Cloud Gateway  130

    8.1 Spring Cloud Gateway介绍 

    130

    8.2 Spring Cloud Gateway工作原理 

    131

    8.3 Spring Cloud Gateway快速上手 

    131

    8.3.1 创建Gateway项目 

    131

    8.3.2 路由转发示例  132

    8.3.3 整合Eureka路由 

    133

    8.3.4 整合Eureka的默认路由  133

    8.4 Spring Cloud Gateway路由断言工厂  134

    8.4.1 路由断言工厂使用  134

    8.4.2 自定义路由断言工厂  136

    8.5 Spring Cloud Gateway过滤器工厂  137

    8.5.1 Spring Cloud Gateway过滤器工厂使用  137

    8.5.2 自定义Spring Cloud Gateway过滤器工厂  138

    8.6 全局过滤器  140

    8.7 实战案例  143

    8.7.1 限流实战  143

    8.7.2 熔断回退实战  145

    8.7.3 跨域实战  145

    8.7.4 统一异常处理  147

    8.7.5 重试机制  150

    8.8 本章小结  151

    第9章 自研分布式配置管理  152

    9.1 自研配置管理框架Smconf简介 

    152

    9.2 Smconf工作原理 

    153

    9.3 Smconf部署 

    154

    9.3.1 Mongodb安装 

    154

    9.3.2 Zookeeper 安装 

    155

    9.3.3 Smconf Server 部署 

    156

    9.4 项目中集成Smconf  157

    9.4.1 集成Smconf  157

    9.4.2 使用Smconf  158

    9.4.3 配置更新回调  159

    9.5 Smconf详细使用 

    160

    9.5.1 源码编译问题  160

    9.5.2 后台账号管理  160

    9.5.3 REST API  161

    9.6 Smconf源码解析 

    163

    9.6.1 Client启动 

    163

    9.6.2 启动加载配置  165

    9.6.3 配置修改推送原理  166

    9.7 本章小结  167

    第10章 分布式配置中心Apollo  168

    10.1 Apollo简介 

    168

    10.2 Apollo的核心功能点  168

    10.3 Apollo核心概念 

    170

    10.4 Apollo本地部署 

    171

    10.5 Apollo Portal管理后台使用  172

    10.6 Java中使用Apollo  174

    10.6.1 普通Java项目中使用  174

    10.6.2 Spring Boot中使用 

    177

    10.7 Apollo的架构设计  179

    10.7.1 Apollo架构设计介绍  179

    10.7.2 Apollo服务端设计  181

    10.7.3 Apollo客户端设计  188

    10.7.4 Apollo高可用设计  195

    10.8 本章小结  196

    第11章 Sleuth 服务跟踪 

    197

    11.1 Spring Cloud 集成 Sleuth  197

    11.2 整合 Logstash  198

    11.2.1 ELK 简介  198

    11.2.2 输出 JSON 格式日志 

    198

    11.3 整合Zipkin  200

    11.3.1 Zipkin数据收集服务  200

    11.3.2 项目集成Zipkin发送调用链数据  201

    11.3.3 抽样采集数据  203

    11.3.4 异步任务线程池定义  203

    11.3.5 TracingFilter  204

    11.3.6 监控本地方法  205

    11.3.7 过滤不想跟踪的请求  206

    11.3.8 用RabbitMq代替 Http 发送调用链数据  206

    11.3.9 用 Elasticsearch 存储调用链数据  207

    11.4 本章小结  208

    第12章 微服务之间调用的安全认证  209

    12.1 什么是 JWT  209

    12.2 创建统一的认证服务  210

    12.2.1 表结构 

    210

    12.2.2 JWT工具类封装  210

    12.2.3 认证接口  212

    12.3 服务提供方进行调用认证  212

    12.4 服务消费方申请 Token  214

    12.5 Feign 调用前统一申请 Token 传递到调用的服务中  216

    12.6 RestTemplate调用前统一申请 Token 传递到调用的服务中  217

    12.7 Zuul中传递 Token 到路由的服务中  218

    12.8 本章小结  219

    第13章 Spring Boot

    Admin  220

    13.1 Spring Boot Admin 的使用方法  220

    13.1.1 创建 Spring Boot Admin项目 

    220

    13.1.2 将服务注册到 Spring Boot Admin  221

    13.1.3 监控内容介绍  223

    13.1.4 如何在 Admin 中查看各个服务的日志  225

    13.2 开启认证  226

    13.3 集成 Eureka  227

    13.4 监控服务  228

    13.4.1 邮件警报  228

    13.4.2 自定义钉钉警报  229

    13.5 本章小结  232

    第14章 服务的API文档管理 

    233

    14.1 Swagger 简介 

    233

    14.2 集成 Swagger 管理 API 文档 

    234

    14.2.1 项目中集成 Swagger  234

    14.2.2 使用 Swagger 生成文档 

    234

    14.2.3 在线测试接口  235

    14.3 Swagger 注解 

    236

    14.4 Eureka 控制台快速查看 Swagger 文档 

    240

    14.5 请求认证  240

    14.6 Zuul中聚合多个服务Swagger  241

    14.7 本章小结  242

    第四部分 高级篇

    第15章 API 网关扩展 

    244

    15.1 用户认证  244

    15.1.1 动态管理不需要拦截的 API 请求 

    244

    15.1.2 创建认证的用户服务  246

    15.1.3 路由之前的认证  247

    15.1.4 向下游微服务中传递认证之后的用户信息  248

    15.1.5 内部服务间的用户信息传递  248

    15.2 服务限流  250

    15.2.1 限流算法  250

    15.2.2 单节点限流  251

    15.2.3 集群限流  255

    15.2.4 具体服务限流  258

    15.2.5 具体接口限流  258

    15.3 服务降级  262

    15.4 灰度发布  264

    15.4.1 原理讲解  264

    15.4.2 根据用户做灰度发布  265

    15.4.3 根据 IP 做灰度发布  268

    15.5 本章小结  268

    第16章 微服务之缓存  269

    16.1 Guava Cache 本地缓存 

    269

    16.1.1 Guava Cache 简介 

    269

    16.1.2 代码示例  270

    16.1.3 回收策略  270

    16.2 Redis 缓存 

    271

    16.2.1 用Redistemplate操作 Redis  271

    16.2.2 用 Repository 操作 Redis  272

    16.2.3 Spring Cache 缓存数据 

    274

    16.2.4 缓存异常处理  278

    16.2.5 自定义缓存工具类  279

    16.3 防止缓存穿透方案  282

    16.3.1 什么是缓存穿透  282

    16.3.2 缓存穿透的危害  282

    16.3.3 解决方案  282

    16.3.4 布隆过滤器介绍  283

    16.3.5 代码示例  283

    16.4 防止缓存雪崩方案  284

    16.4.1 什么是缓存雪崩  284

    16.4.2 缓存雪崩的危害  284

    16.4.3 解决方案  284

    16.4.4 代码示例  285

    16.4.5 分布式锁方式  285

    16.5 本章小结  286

    第17章 微服务之存储  287

    17.1 存储选型  287

    17.2 Mongodb  288

    17.2.1 集成 Spring Data Mongodb  288

    17.2.2 添加数据操作  288

    17.2.3 索引使用  290

    17.2.4 修改数据操作  291

    17.2.5 删除数据操作  293

    17.2.6 查询数据操作  294

    17.2.7 GridFS操作 

    295

    17.2.8 用 Repository方式操作数据  296

    17.2.9 自增 ID 实现 

    300

    17.2.10 批量更新扩展  303

    17.3 Mysql  304

    17.3.1 集成 Spring Jdbc-Template  304

    17.3.2 JdbcTemplate代码示例 

    305

    17.3.3 封装JdbcTemplate操作Mysql更简单 

    305

    17.3.4 扩展JdbcTemplate使用方式 

    306

    17.3.5 常见问题  310

    17.4 Elasticsearch  312

    17.4.1 集成 Spring Data Elasticsearch  312

    17.4.2 Repository 示例 

    312

    17.4.3 ElasticsearchTemplate示例 

    315

    17.4.4 索引构建方式  318

    17.5 本章小结  319

    第18章 微服务之分布式事务解决方案  320

    18.1 两阶段型  320

    18.2 TCC 补偿型  321

    18.3 最终一致性  321

    18.3.1 原理讲解  321

    18.3.2 创建可靠性消息服务  323

    18.3.3 消息存储表设计  324

    18.3.4 提供服务接口  325

    18.3.5 创建消息发送系统  329

    18.3.6 消费消息逻辑  332

    18.3.7 消息管理系统  335

    18.4 最大努力通知型事务  335

    18.5 本章小结  335

    第19章 分布式任务调度  336

    19.1 Elastic-Job  336

    19.1.1 Elastic-Job 介绍 

    336

    19.1.2 任务调度目前存在的问题  336

    19.1.3 为什么选择 Elastic-Job  337

    19.2 快速集成  338

    19.3 任务使用  339

    19.3.1 简单任务  339

    19.3.2 数据流任务  340

    19.3.3 脚本任务  340

    19.4 配置参数讲解  341

    19.4.1 注册中心配置  341

    19.4.2 作业配置  342

    19.4.3 dataflow 独有配置 

    343

    19.4.4 script独有配置 

    343

    19.5 多节点并行调度  344

    19.5.1 分片概念  344

    19.5.2 任务节点分片策略  344

    19.5.3 业务数据分片处理  345

    19.6 事件追踪  347

    19.7 扩展功能  349

    19.7.1 自定义监听器  349

    19.7.2 定义异常处理  349

    19.8 运维平台  350

    19.8.1 功能列表  350

    19.8.2 部署运维平台  351

    19.8.3 运维平台使用  351

    19.9 使用经验分享  355

    19.9.1 任务的划分和监控  355

    19.9.2 任务的扩展性和节点数量  355

    19.9.3 任务的重复执行  355

    19.9.4 overwrite 覆盖问题 

    356

    19.9.5 流水式任务  356

    19.10 本章小结  357

    第20章 分库分表解决方案  358

    20.1 Sharding-JDBC  358

    20.1.1 介绍 

    358

    20.1.2 功能列表  359

    20.1.3 相关概念  359

    20.2 快速集成  360

    20.3 读写分离实战  362

    20.3.1 准备数据  362

    20.3.2 配置读写分离  363

    20.3.3 验证读从库  363

    20.3.4 验证写主库  365

    20.3.5 Hint 强制路由主库  366

    20.4 分库分表实战  367

    20.4.1 常用分片算法  367

    20.4.2 使用分片算法  368

    20.4.3 不分库只分表实战  368

    20.4.4 既分库又分表实战  372

    20.5 分布式主键  375

    20.6 本章小结  377

    第21章 最佳生产实践经验  378

    21.1 开发环境和测试环境共用Eureka  378

    21.2 Swagger和Actuator访问进行权限控制  379

    21.3 Spring Boot Admin监控被保护的服务  380

    21.4 Apollo配置中心简化版搭建分享  380

    21.5 Apollo使用小经验  382

    21.5.1 公共配置  382

    21.5.2 账号权限  383

    21.5.3 环境配置和项目配置  385

    21.6 Apollo动态调整日志级别  385

    21.7 Apollo存储加密 

    387

    21.8 扩展Apollo支持存储加解密  390

    21.9 Apollo结合Zuul实现动态路由  391

    21.10 Apollo整合Archaius  393

    21.11 Elastic-Job的Spring-Boot-Starter封装 

    394

    21.12 Spring Boot中Mongodb多数据源封装  396

    21.13 Zuul中对API进行加解密  398

    21.14 本章小结  400
  • 内容简介:
    这是一部从技术原理、工程实践和进阶提升3个维度讲解Spring
      Cloud微服务架构与开发的著作。
      作者在Spring
      Cloud微服务领域有丰富的工程实践经验,它将带领读者零基础入门Spring Cloud微服务,并快速掌握动手实践能力,*终进阶为Spring
      Cloud微服务领域的技术达人。
      全书共21章,分为4个部分:
      *部分准备篇(第1~2章)
      首先对微服务和Spring Cloud的概念、优劣势、功能模块等做了整体性的介绍,然后演示了如何搭建Spring Cloud的开发环境,*后对Spring Boot做了详细的介绍。
      第二部分基础篇(第3~7章)
      对Eureka 注册中心、客户端负载均衡 Ribbon、声明式 REST 客户端 Feign、Hystrix服务容错处理、API 网关等Spring Cloud的重要模块的技术原理、配置、使用等做了详尽的讲解。
      第三部分实战篇(第8~14章)
      对微服务架构中的普遍问题给出了实战解决方案,包括选择配置中心、自研发配置中心、分布式跟踪、微服务安全认证、Spring
      Boot Admin 管理微服务、快速生成API 文档等实用性内容。
      第四部分高级篇(15-21)
      重点讲解了Spring Cloud的扩展性的使用,比如API网关、微服务的缓存和存储、分布式事务解决方案、任务调度、分库分表,以及大量优秀的生产实践经验等。
  • 目录:
    Contents 目  录

    赞誉

    前言

    第一部分 准备篇

    第1章 Spring Cloud

    与微服务概述  2

    1.1 传统的单体应用  2

    1.1.1 改进单体应用的架构  2

    1.1.2 向微服务靠拢  3

    1.2 什么是微服务  4

    1.2.1 使用微服务架构的优势和劣势  4

    1.2.2 重构前的准备工作  5

    1.3 什么是Spring Cloud  5

    1.3.1 Spring Cloud模块介绍 

    6

    1.3.2 Spring Cloud版本介绍 

    6

    1.4 本章小结  7

    第2章 实战前的准备工作  8

    2.1 开发环境的准备  8

    2.2 Spring Boot入门 

    9

    2.2.1 Spring Boot简介 

    9

    2.2.2 搭建Spring Boot项目 

    9

    2.2.3 编写第一个REST接口 

    11

    2.2.4 读取配置文件  11

    2.2.5 profiles多环境配置  13

    2.2.6 热部署 

    13

    2.2.7 actuator监控 

    15

    2.2.8 自定义actuator端点 

    17

    2.2.9 统一异常处理  18

    2.2.10 异步执行  20

    2.2.11 随机端口  22

    2.2.12 编译打包  24

    2.3 Spring Boot Starter自定义 

    25

    2.3.1 Spring Boot Starter项目创建 

    25

    2.3.2 自动创建客户端  26

    2.3.3 使用Starter  27

    2.3.4 使用注解开启Starter自动构建 

    27

    2.3.5 使用配置开启Starter自动构建 

    28

    2.3.6 配置Starter内容提示 

    29

    2.4 本章小结  29

    第二部分 基础篇

    第3章 Eureka 注册中心 

    32

    3.1 Eureka  32

    3.2 使用 Eureka 编写注册中心服务  33

    3.3 编写服务提供者  35

    3.3.1 创建项目注册到Eureka  35

    3.3.2 编写提供接口  36

    3.4 编写服务消费者  37

    3.4.1 直接调用接口  37

    3.4.2 通过Eureka来消费接口  38

    3.5 开启 Eureka 认证 

    38

    3.6 Eureka 高可用搭建  39

    3.6.1 高可用原理  39

    3.6.2 搭建步骤  40

    3.7 常用配置讲解  41

    3.7.1 关闭自我保护  41

    3.7.2 自定义Eureka的

    InstanceID  41

    3.7.3 自定义实例跳转链接  42

    3.7.4 快速移除已经失效的服务信息  43

    3.8 扩展使用  44

    3.8.1 Eureka REST API  44

    3.8.2 元数据使用  46

    3.8.3 EurekaClient使用 

    47

    3.8.4 健康检查  49

    3.8.5 服务上下线监控  50

    3.9 本章小结  51

    第4章 客户端负载均衡

    Ribbon  52

    4.1 Ribbon  52

    4.1.1 Ribbon模块 

    52

    4.1.2 Ribbon 使用 

    53

    4.2 RestTemplate结合 Ribbon 使用 

    54

    4.2.1 使用RestTemplate与整合 Ribbon  54

    4.2.2 RestTemplate负载均衡示例  57

    4.2.3 @LoadBalanced注解原理 

    58

    4.2.4 Ribbon API 使用 

    62

    4.2.5 Ribbon 饥饿加载 

    63

    4.3 负载均衡策略介绍  64

    4.4 自定义负载策略  65

    4.5 配置详解  66

    4.5.1 常用配置  66

    4.5.2 代码配置 Ribbon  67

    4.5.3 配置文件方式配置Ribbon  67

    4.6 重试机制  68

    4.7 本章小结  69

    第5章 声明式REST客户端Feign  70

    5.1 使用 Feign 调用服务接口  70

    5.1.1 在Spring Cloud中集成Feign  71

    5.1.2 使用Feign调用接口 

    71

    5.2 自定义 Feign的配置 

    72

    5.2.1 日志配置  72

    5.2.2 契约配置  73

    5.2.3 Basic认证配置  74

    5.2.4 超时时间配置  75

    5.2.5 客户端组件配置  75

    5.2.6 GZIP压缩配置  76

    5.2.7 编码器解码器配置  77

    5.2.8 使用配置自定义Feign的配置 

    78

    5.2.9 继承特性  78

    5.2.10 多参数请求构造  80

    5.3 脱离 Spring Cloud 使用 Feign  80

    5.3.1 原生注解方式  81

    5.3.2 构建Feign对象 

    82

    5.3.3 其他配置  83

    5.4 本章小结  83

    第6章 Hystrix服务容错处理  84

    6.1 Hystrix  84

    6.1.1 Hystrix的简单使用  84

    6.1.2 回退支持  85

    6.1.3 信号量策略配置  86

    6.1.4 线程隔离策略配置  86

    6.1.5 结果缓存  87

    6.1.6 缓存清除  88

    6.1.7 合并请求  89

    6.2 在 Spring Cloud 中使用Hystrix  91

    6.2.1 简单使用  91

    6.2.2 配置详解  92

    6.2.3 Feign整合Hystrix服务容错  95

    6.2.4 Feign中禁用Hystrix  97

    6.3 Hystrix监控 

    97

    6.4 整合 Dashboard 查看监控数据  98

    6.5 Turbine 聚合集群数据  100

    6.5.1 Turbine使用 

    100

    6.5.2 context-path导致监控失败  101

    6.6 本章小结  102

    第7章 API网关 

    103

    7.1 Zuul简介  103

    7.2 使用Zuul构建微服务网关  104

    7.2.1 简单使用  104

    7.2.2 集成Eureka  105

    7.3 Zuul路由配置  105

    7.4 Zuul过滤器讲解  106

    7.4.1 过滤器类型  106

    7.4.2 请求生命周期  107

    7.4.3 使用过滤器  108

    7.4.4 过滤器禁用  109

    7.4.5 过滤器中传递数据  110

    7.4.6 过滤器拦截请求  111

    7.4.7 过滤器中异常处理  113

    7.5 Zuul容错和回退  115

    7.5.1 容错机制  115

    7.5.2 回退机制  116

    7.6 Zuul使用小经验  118

    7.6.1 /routes 端点 

    118

    7.6.2 /filters 端点 

    118

    7.6.3 文件上传  119

    7.6.4 请求响应信息输出  121

    7.6.5 Zuul自带的Debug功能  124

    7.7 Zuul高可用  126

    7.8 本章小结  127

    第三部分 实战篇

    第8章 API 网关之Spring Cloud Gateway  130

    8.1 Spring Cloud Gateway介绍 

    130

    8.2 Spring Cloud Gateway工作原理 

    131

    8.3 Spring Cloud Gateway快速上手 

    131

    8.3.1 创建Gateway项目 

    131

    8.3.2 路由转发示例  132

    8.3.3 整合Eureka路由 

    133

    8.3.4 整合Eureka的默认路由  133

    8.4 Spring Cloud Gateway路由断言工厂  134

    8.4.1 路由断言工厂使用  134

    8.4.2 自定义路由断言工厂  136

    8.5 Spring Cloud Gateway过滤器工厂  137

    8.5.1 Spring Cloud Gateway过滤器工厂使用  137

    8.5.2 自定义Spring Cloud Gateway过滤器工厂  138

    8.6 全局过滤器  140

    8.7 实战案例  143

    8.7.1 限流实战  143

    8.7.2 熔断回退实战  145

    8.7.3 跨域实战  145

    8.7.4 统一异常处理  147

    8.7.5 重试机制  150

    8.8 本章小结  151

    第9章 自研分布式配置管理  152

    9.1 自研配置管理框架Smconf简介 

    152

    9.2 Smconf工作原理 

    153

    9.3 Smconf部署 

    154

    9.3.1 Mongodb安装 

    154

    9.3.2 Zookeeper 安装 

    155

    9.3.3 Smconf Server 部署 

    156

    9.4 项目中集成Smconf  157

    9.4.1 集成Smconf  157

    9.4.2 使用Smconf  158

    9.4.3 配置更新回调  159

    9.5 Smconf详细使用 

    160

    9.5.1 源码编译问题  160

    9.5.2 后台账号管理  160

    9.5.3 REST API  161

    9.6 Smconf源码解析 

    163

    9.6.1 Client启动 

    163

    9.6.2 启动加载配置  165

    9.6.3 配置修改推送原理  166

    9.7 本章小结  167

    第10章 分布式配置中心Apollo  168

    10.1 Apollo简介 

    168

    10.2 Apollo的核心功能点  168

    10.3 Apollo核心概念 

    170

    10.4 Apollo本地部署 

    171

    10.5 Apollo Portal管理后台使用  172

    10.6 Java中使用Apollo  174

    10.6.1 普通Java项目中使用  174

    10.6.2 Spring Boot中使用 

    177

    10.7 Apollo的架构设计  179

    10.7.1 Apollo架构设计介绍  179

    10.7.2 Apollo服务端设计  181

    10.7.3 Apollo客户端设计  188

    10.7.4 Apollo高可用设计  195

    10.8 本章小结  196

    第11章 Sleuth 服务跟踪 

    197

    11.1 Spring Cloud 集成 Sleuth  197

    11.2 整合 Logstash  198

    11.2.1 ELK 简介  198

    11.2.2 输出 JSON 格式日志 

    198

    11.3 整合Zipkin  200

    11.3.1 Zipkin数据收集服务  200

    11.3.2 项目集成Zipkin发送调用链数据  201

    11.3.3 抽样采集数据  203

    11.3.4 异步任务线程池定义  203

    11.3.5 TracingFilter  204

    11.3.6 监控本地方法  205

    11.3.7 过滤不想跟踪的请求  206

    11.3.8 用RabbitMq代替 Http 发送调用链数据  206

    11.3.9 用 Elasticsearch 存储调用链数据  207

    11.4 本章小结  208

    第12章 微服务之间调用的安全认证  209

    12.1 什么是 JWT  209

    12.2 创建统一的认证服务  210

    12.2.1 表结构 

    210

    12.2.2 JWT工具类封装  210

    12.2.3 认证接口  212

    12.3 服务提供方进行调用认证  212

    12.4 服务消费方申请 Token  214

    12.5 Feign 调用前统一申请 Token 传递到调用的服务中  216

    12.6 RestTemplate调用前统一申请 Token 传递到调用的服务中  217

    12.7 Zuul中传递 Token 到路由的服务中  218

    12.8 本章小结  219

    第13章 Spring Boot

    Admin  220

    13.1 Spring Boot Admin 的使用方法  220

    13.1.1 创建 Spring Boot Admin项目 

    220

    13.1.2 将服务注册到 Spring Boot Admin  221

    13.1.3 监控内容介绍  223

    13.1.4 如何在 Admin 中查看各个服务的日志  225

    13.2 开启认证  226

    13.3 集成 Eureka  227

    13.4 监控服务  228

    13.4.1 邮件警报  228

    13.4.2 自定义钉钉警报  229

    13.5 本章小结  232

    第14章 服务的API文档管理 

    233

    14.1 Swagger 简介 

    233

    14.2 集成 Swagger 管理 API 文档 

    234

    14.2.1 项目中集成 Swagger  234

    14.2.2 使用 Swagger 生成文档 

    234

    14.2.3 在线测试接口  235

    14.3 Swagger 注解 

    236

    14.4 Eureka 控制台快速查看 Swagger 文档 

    240

    14.5 请求认证  240

    14.6 Zuul中聚合多个服务Swagger  241

    14.7 本章小结  242

    第四部分 高级篇

    第15章 API 网关扩展 

    244

    15.1 用户认证  244

    15.1.1 动态管理不需要拦截的 API 请求 

    244

    15.1.2 创建认证的用户服务  246

    15.1.3 路由之前的认证  247

    15.1.4 向下游微服务中传递认证之后的用户信息  248

    15.1.5 内部服务间的用户信息传递  248

    15.2 服务限流  250

    15.2.1 限流算法  250

    15.2.2 单节点限流  251

    15.2.3 集群限流  255

    15.2.4 具体服务限流  258

    15.2.5 具体接口限流  258

    15.3 服务降级  262

    15.4 灰度发布  264

    15.4.1 原理讲解  264

    15.4.2 根据用户做灰度发布  265

    15.4.3 根据 IP 做灰度发布  268

    15.5 本章小结  268

    第16章 微服务之缓存  269

    16.1 Guava Cache 本地缓存 

    269

    16.1.1 Guava Cache 简介 

    269

    16.1.2 代码示例  270

    16.1.3 回收策略  270

    16.2 Redis 缓存 

    271

    16.2.1 用Redistemplate操作 Redis  271

    16.2.2 用 Repository 操作 Redis  272

    16.2.3 Spring Cache 缓存数据 

    274

    16.2.4 缓存异常处理  278

    16.2.5 自定义缓存工具类  279

    16.3 防止缓存穿透方案  282

    16.3.1 什么是缓存穿透  282

    16.3.2 缓存穿透的危害  282

    16.3.3 解决方案  282

    16.3.4 布隆过滤器介绍  283

    16.3.5 代码示例  283

    16.4 防止缓存雪崩方案  284

    16.4.1 什么是缓存雪崩  284

    16.4.2 缓存雪崩的危害  284

    16.4.3 解决方案  284

    16.4.4 代码示例  285

    16.4.5 分布式锁方式  285

    16.5 本章小结  286

    第17章 微服务之存储  287

    17.1 存储选型  287

    17.2 Mongodb  288

    17.2.1 集成 Spring Data Mongodb  288

    17.2.2 添加数据操作  288

    17.2.3 索引使用  290

    17.2.4 修改数据操作  291

    17.2.5 删除数据操作  293

    17.2.6 查询数据操作  294

    17.2.7 GridFS操作 

    295

    17.2.8 用 Repository方式操作数据  296

    17.2.9 自增 ID 实现 

    300

    17.2.10 批量更新扩展  303

    17.3 Mysql  304

    17.3.1 集成 Spring Jdbc-Template  304

    17.3.2 JdbcTemplate代码示例 

    305

    17.3.3 封装JdbcTemplate操作Mysql更简单 

    305

    17.3.4 扩展JdbcTemplate使用方式 

    306

    17.3.5 常见问题  310

    17.4 Elasticsearch  312

    17.4.1 集成 Spring Data Elasticsearch  312

    17.4.2 Repository 示例 

    312

    17.4.3 ElasticsearchTemplate示例 

    315

    17.4.4 索引构建方式  318

    17.5 本章小结  319

    第18章 微服务之分布式事务解决方案  320

    18.1 两阶段型  320

    18.2 TCC 补偿型  321

    18.3 最终一致性  321

    18.3.1 原理讲解  321

    18.3.2 创建可靠性消息服务  323

    18.3.3 消息存储表设计  324

    18.3.4 提供服务接口  325

    18.3.5 创建消息发送系统  329

    18.3.6 消费消息逻辑  332

    18.3.7 消息管理系统  335

    18.4 最大努力通知型事务  335

    18.5 本章小结  335

    第19章 分布式任务调度  336

    19.1 Elastic-Job  336

    19.1.1 Elastic-Job 介绍 

    336

    19.1.2 任务调度目前存在的问题  336

    19.1.3 为什么选择 Elastic-Job  337

    19.2 快速集成  338

    19.3 任务使用  339

    19.3.1 简单任务  339

    19.3.2 数据流任务  340

    19.3.3 脚本任务  340

    19.4 配置参数讲解  341

    19.4.1 注册中心配置  341

    19.4.2 作业配置  342

    19.4.3 dataflow 独有配置 

    343

    19.4.4 script独有配置 

    343

    19.5 多节点并行调度  344

    19.5.1 分片概念  344

    19.5.2 任务节点分片策略  344

    19.5.3 业务数据分片处理  345

    19.6 事件追踪  347

    19.7 扩展功能  349

    19.7.1 自定义监听器  349

    19.7.2 定义异常处理  349

    19.8 运维平台  350

    19.8.1 功能列表  350

    19.8.2 部署运维平台  351

    19.8.3 运维平台使用  351

    19.9 使用经验分享  355

    19.9.1 任务的划分和监控  355

    19.9.2 任务的扩展性和节点数量  355

    19.9.3 任务的重复执行  355

    19.9.4 overwrite 覆盖问题 

    356

    19.9.5 流水式任务  356

    19.10 本章小结  357

    第20章 分库分表解决方案  358

    20.1 Sharding-JDBC  358

    20.1.1 介绍 

    358

    20.1.2 功能列表  359

    20.1.3 相关概念  359

    20.2 快速集成  360

    20.3 读写分离实战  362

    20.3.1 准备数据  362

    20.3.2 配置读写分离  363

    20.3.3 验证读从库  363

    20.3.4 验证写主库  365

    20.3.5 Hint 强制路由主库  366

    20.4 分库分表实战  367

    20.4.1 常用分片算法  367

    20.4.2 使用分片算法  368

    20.4.3 不分库只分表实战  368

    20.4.4 既分库又分表实战  372

    20.5 分布式主键  375

    20.6 本章小结  377

    第21章 最佳生产实践经验  378

    21.1 开发环境和测试环境共用Eureka  378

    21.2 Swagger和Actuator访问进行权限控制  379

    21.3 Spring Boot Admin监控被保护的服务  380

    21.4 Apollo配置中心简化版搭建分享  380

    21.5 Apollo使用小经验  382

    21.5.1 公共配置  382

    21.5.2 账号权限  383

    21.5.3 环境配置和项目配置  385

    21.6 Apollo动态调整日志级别  385

    21.7 Apollo存储加密 

    387

    21.8 扩展Apollo支持存储加解密  390

    21.9 Apollo结合Zuul实现动态路由  391

    21.10 Apollo整合Archaius  393

    21.11 Elastic-Job的Spring-Boot-Starter封装 

    394

    21.12 Spring Boot中Mongodb多数据源封装  396

    21.13 Zuul中对API进行加解密  398

    21.14 本章小结  400
查看详情
相关图书 / 更多
您可能感兴趣 / 更多