电子工业出版社有限公司店铺主页二维码
电子工业出版社有限公司
电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
微信扫描二维码,访问我们的微信店铺

Spring Cloud微服务架构实战派

64.10
运费: 免运费
Spring Cloud微服务架构实战派 商品图0
Spring Cloud微服务架构实战派 商品缩略图0

商品详情

书名:Spring Cloud微服务架构实战派
定价:89.0
ISBN:9787121386251
作者:龙中华
版次:第1版
出版时间:2020-04

内容提要:
本书针对Spring Cloud 2.0及以上版本。在编写过程中,不仅考虑到企业任职所需的技能,还考虑到求职面试时可能会遇到的知识点。本书采用“知识点+实例”形式编写,共有“39个基于知识点的实例 + 1个综合性项目”,深入讲解了Spring Cloud的各类组件、微服务架构的解决方案和开发实践,以及容器、Kubernetes和Jenkins等DevOps(开发运维一体化)相关知识。本书的主脉络是:是什么,为什么用,怎样用,为什么要这样用,如何用得更好,有什么*佳的实践。

作者简介:
龙中华,拥有10多年一线企业开发经验。对多种技术有深入了解和研究,致力于用技术为公司业务创造利润。曾在多家公司担任主程序员和系统架构师,现就职于某大数据研究机构,担任技术顾问。

目录:
-------------第1篇 入门

-
第1章 进入微服务世界 2
1.1 系统架构的发展阶段 2
|1.1.1 单体应用阶段 2
|1.1.2 垂直应用阶段 3
|1.1.3 分布式系统阶段 4
|1.1.4 服务治理阶段 5
|1.1.5 微服务阶段 6
|1.1.6 服务网格阶段 6
1.2 主流的微服务框架 8
|1.2.1 主流微服务框架一览表 8
|1.2.2 Dubbo 9
|1.2.3 Spring Cloud 10
1.3 服务网格(Service Mesh)框架Istio 11
1.4 比较Dubbo、Spring Cloud和Istio 12
|1.4.1 对比架构 12
|1.4.2 对比各项数据 15
|1.4.3 总结 15
-
第2章 准备开发环境和工具 17
2.1 搭建环境 17
|2.1.1 安装Java开发环境JDK 17
|2.1.2 配置JDK的环境变量 18
2.2 安装和配置Maven 20
|2.2.1 安装和配置 20
|2.2.2 认识pom.xml文件 22
|2.2.3 了解Maven的运作方式 25
|2.2.4 配置国内仓库 26
2.3 安装及配置开发工具IDEA 27
|2.3.1 安装IDEA 27
|2.3.2 配置IDEA的Maven环境 29
|2.3.3 安装Spring Assistant插件 29
2.4 安装及配置开发工具Eclipse 30
|2.4.1 安装Eclipse 30
|2.4.2 安装Spring Tools 4插件 30
|2.4.3 配置Eclipse的Maven环境 31
|2.4.4 创建Spring Cloud项目 32
2.5 熟悉Spring官方开发工具STS 32
2.6 如何使用本书源码 33
|2.6.1 在IDEA中使用 33
|2.6.2 在Eclipse(STS)中使用 33
-
第3章 实例1:用Spring Cloud实现一个微服务系统 35
3.1 本实例的架构和实现步骤 35
3.2 创建Spring Cloud项目 36
3.3 用Eureka实现“服务中心” 37
|3.3.1 添加配置 37
|3.3.2 实现“服务中心”集群(满足高可用) 38
|3.3.3 打包和部署“服务中心” 40
3.4 用Eureka实现“服务提供者” 42
|3.4.1 实现“服务提供者”的客户端 42
|3.4.2 实现“服务提供者”的接口 44
|3.4.3 检查服务的有效性 44
|3.4.4 实现“服务提供者”集群 44
3.5 用Feign实现“服务消费者” 45
|3.5.1 用Feign实现“服务消费者”的客户端 45
|3.5.2 调用“服务提供者”的接口 46
3.6 测试微服务系统 48

-
-------------第2篇 基础
-
第4章 认识微服务 50
4.1 微服务的优点和缺点 50
|4.1.1 微服务的优点 50
|4.1.2 微服务的缺点 52
4.2 微服务设计的原则 53
4.3 领域驱动设计(DDD) 56
4.4 跨服务的事务管理模式 57
|4.4.1 2PC/3PC算法模式 58
|4.4.2 TCC事务机制模式 60
|4.4.3 消息中间件模式 60
|4.4.4 Saga模式 61
|4.4.5 Paxos算法模式 61
4.5 跨服务的查询模式 62
|4.5.1 API组合器模式 62
|4.5.2 CQRS模式 62
4.6 微服务部署 63
|4.6.1 部署模式 63
|4.6.2 升级模式 64
4.7 微服务架构与云原生的关系 66
|4.7.1 了解云原生 66
|4.7.2 微服务架构和云原生架构的区别 67
-
第5章 Spring Cloud基础 68
5.1 了解Spring Cloud生态 68
|5.1.1 Spring Cloud的总体架构 68
|5.1.2 主要子项目 69
|5.1.3 Netflix家族项目 70
|5.1.4 阿里巴巴家族项目 71
|5.1.5 其他子项目 72
|5.1.6 常用的技术栈 73
5.2 了解Spring Cloud 74
|5.2.1 Spring Cloud与Spring、Spring Boot的关系 74
|5.2.2 Spring Cloud的版本 76
|5.2.3 Spring Cloud项目的结构 77
|5.2.4 Spring Cloud的入口类 78
|5.2.5 Spring Cloud的自动配置 78
|5.2.6 开箱即用 79
5.3 了解注解 80
|5.3.1 什么是注解 80
|5.3.2 Spring Boot的系统注解 80
|5.3.3 Spring Boot的常用注解 81
|5.3.4 Spring Cloud的常用注解 86
5.4 了解Starter 87
|5.4.1 Spring Boot的Starter 87
|5.4.2 Spring Cloud的Starter 88
|5.4.3 如何使用Starter 88
5.5 使用配置文件 88
|5.5.1 配置文件application.properties 89
|5.5.2 实例2:使用配置文件application.properties 91
|5.5.3 配置文件application.yml 93
|5.5.4 实例3:使用配置文件application.yml 94
|5.5.5 实例4:用application.yml和application.properties配置多环境 98
|5.5.6 了解application.yml和application.properties的迁移 100
|5.5.7 比较配置文件bootstrap和application 100
5.6 应用程序分层开发模式——MVC 101
|5.6.1 了解MVC模式 101
|5.6.2 MVC和三层架构的关系 102
5.7 响应式编程——WebFlux 103
|5.7.1 什么是WebFlux 103
|5.7.2 比较MVC和WebFlux 103
|5.7.3 比较Mono和Flux 105
|5.7.4 开发WebFlux的流程 106
5.8 了解Spring Cloud Commons 106
|5.8.1 Spring Cloud的上下文 107
|5.8.2 Spring Cloud的公共抽象类 107

-
-------------第3篇 进阶
-
第6章 用Consul实现服务治理 110
6.1 为什么需要服务治理 110
6.2 主流的“服务中心” 111
|6.2.1 Eureka 111
|6.2.2 Zookeeper 112
|6.2.3 ETCD 113
|6.2.4 Consul 113
|6.2.5 比较Eureka、Consul、ETCD、Zookeeper和Nacos 114
|6.2.6 了解CAP(一致性、可用性、分区容错性) 115
|6.2.7 在容器化时代如何选择“服务中心” 115
6.3 认识“服务发现”接口 116
|6.3.1 如何进行服务的注册和发现 116
|6.3.2 @EnableDiscoveryClient与@EnableEurekaClient的区别 117
6.4 认识Consul 117
|6.4.1 Consul的术语 117
|6.4.2 Consul的工作原理 118
|6.4.3 集群的实现原理 119
|6.4.4 健康检查 120
|6.4.5 安装和实现Consul集群 122
|6.4.6 在Linux中构建Consul集群 124
6.5 实例5:用Consul实现“服务提供者”集群和“服务消费者” 125
|6.5.1 实现“服务提供者”集群 126
|6.5.2 实现“服务消费者” 128
6.6 将“服务中心”从Eureka迁移到Consul 129
-
第7章 用Ribbon和Feign实现客户端负载均衡和服务调用 130
7.1 认识负载均衡 130
|7.1.1 服务器端负载均衡 130
|7.1.2 客户端负载均衡 131
7.2 认识Ribbon 131
|7.2.1 Ribbon的工作原理 131
|7.2.2 Ribbon的主要组件 132
|7.2.3 认识负载均衡器 133
|7.2.4 了解注解@LoadBalanced 135
|7.2.5 Ping机制 136
7.3 认识负载均衡策略 137
|7.3.1 Ribbon支持的9大负载均衡策略 137
|7.3.2 实例6:自定义负载均衡策略 139
7.4 实例7:在没有“服务中心”的情况下,实现自维护的客户端负载均衡 141
|7.4.1 添加依赖和配置,并启用客户端负载均衡 142
|7.4.2 编写负载均衡控制器 143
|7.4.3 测试客户端负载均衡 143
7.5 了解Feign 143
|7.5.1 Feign简介 143
|7.5.2 了解Feign的Bean 144
|7.5.3 压缩请求和响应 145
|7.5.4 了解注解@QueryMap 145
|7.5.5 使用Feign 146
7.6 实例8:覆盖Feign的默认配置 147
|7.6.1 添加依赖和配置,并启用支持 147
|7.6.2 自定义Feign的配置 147
|7.6.3 自定义Feign的接口 148
7.7 实例9:实现在Feign中记录日志 148
|7.7.1 添加配置项 148
|7.7.2 设置记录日志等级 149
|7.7.3 实现接口类 149
|7.7.4 实现调用接口 149
7.8 用Feign构建多参数请求 150
|7.8.1 用GET方式构建多参数请求 150
|7.8.2 用POST方式构建多参数请求 150
7.9 Ribbon和Feign的区别 151
-
第8章 用Hystrix实现容错处理 152
8.1 雪崩效应 152
|8.1.1 什么是雪崩效应 152
|8.1.2 造成服务雪崩的原因 153
8.2 主流的容错项目 155
|8.2.1 流量防卫兵Sentinel 155
|8.2.2 容错框架Resilience4j 156
|8.2.3 容错框架Hystrix 156
|8.2.4 对比Sentinel、Hystrix和Resilience4j 157
8.3 Hystrix处理容错的机制 157
|8.3.1 熔断机制 157
|8.3.2 隔离机制 158
|8.3.3 降级机制 160
|8.3.4 缓存机制 160
8.4 实例10:在Feign中用Hystrix实现服务调用的容错 160
|8.4.1 了解Feign对Hystrix的支持 161
|8.4.2 添加依赖和配置,并启用支持 162
|8.4.3 实现回调类 163
|8.4.4 添加fallback属性 163
|8.4.5 测试fallback状态 163
8.5 实例11:用Hystrix Dashboard实现数据的可视化监控 163
|8.5.1 添加依赖和配置 164
|8.5.2 配置启动类和Servlet 165
|8.5.3 查看监控数据 165
8.6 实例12:用Turbine聚合监控数据 166
|8.6.1 添加依赖并启用支持 166
|8.6.2 创建多个“服务消费者” 167
|8.6.3 配置多监控点 167
|8.6.4 启动并测试聚合监控 168
-
第9章 用Spring Cloud Gateway构建微服务网关 169
9.1 认识微服务网关 169
|9.1.1 什么是微服务网关 169
|9.1.2 为什么要使用微服务网关 169
|9.1.3 认识Spring Cloud Gateway 170
|9.1.4 Spring Cloud Gateway的工作流程 171
|9.1.5 比较Zuul与Spring Cloud Gateway 172
9.2 路由(Route) 173
|9.2.1 认识路由的谓词接口和谓词工厂 173
|9.2.2 认识配置路由规则的方式 173
|9.2.3 实例13:用Java API和配置文件方式构建路由 175
|9.2.4 实例14:应用Spring Cloud Gateway的11种路由规则 176
|9.2.5 实例15:测试多种路由规则匹配优先级 181
|9.2.6 实例16:将网关注册到“服务中心”,实现服务转发 183
9.3 过滤器(Filter) 184
|9.3.1 过滤器的基本知识 184
|9.3.2 网关过滤器(GatewayFilter) 184
|9.3.3 全局过滤器(GlobalFilter) 186
|9.3.4 实例17:用AddRequestHeader过滤器工厂给请求添加Header参数 189
9.4 实例18:实现路由容错 190
|9.4.1 处理未定义的路由 190
|9.4.2 用Hystrix处理路由熔断 191
9.5 限流 193
|9.5.1 为什么要限流 193
|9.5.2 常见的限流措施 193
|9.5.3 限流算法 194
|9.5.4 实例19:用Spring Cloud Gateway内置的限流工厂实现限流 195
9.6 高可用 197
9.7 Spring Cloud Gateway的端点 197
|9.7.1 认识Spring Cloud Gateway的端点 197
|9.7.2 实例20:通过Spring Cloud Gateway的端点添加动态路由 198
-
第10章 用Spring Cloud Sleuth实现微服务链路跟踪 200
10.1 微服务链路跟踪 200
|10.1.1 为什么要实现微服务链路跟踪 200
|10.1.2 微服务链路跟踪的技术要求 201
10.2 一些开源的链路跟踪项目——Skywalking、Pinpoint、Zipkin和CAT 202
10.3 认识Sleuth和Zipkin 203
|10.3.1 Sleuth 203
|10.3.2 Zipkin 203
10.4 实例21:用Sleuth实现日志采样 204
10.5 实例22:在Spring Cloud中使用Zipkin 205
|10.5.1 搭建Zipkin服务器 205
|10.5.2 添加依赖和配置 206
|10.5.3 测试链路数据 207
-
第11章 用Spring Cloud Config配置微服务 209
11.1 了解配置中心 209
|11.1.1 配置信息的管理方式 209
|11.1.2 对比主流配置中心 211
|11.1.3 了解Spring Cloud Config 212
|11.1.4 Spring Cloud Config的常用配置 213
11.2 设置配置中心的安全 214
11.3 加/解密配置文件 215
|11.3.1 实例23:用对称加密方式加/解密配置文件 215
|11.3.2 实例24:用非对称加密方式加/解密配置文件 217
11.4 实例25:用Git配置“配置服务器” 220
|11.4.1 在Git仓库中创建配置文件 220
|11.4.2 添加配置中心的依赖和配置,并启用支持 220
|11.4.3 读取配置信息 221
11.5 实例26:从客户端获取“配置服务器”放置在Git仓库中的配置文件 222
|11.5.1 添加依赖和配置 222
|11.5.2 创建用来获取配置的控制器 223
|11.5.3 测试获取到的数据 223
11.6 实例27:用Spring Cloud Bus自动刷新配置信息 224
|11.6.1 Spring Cloud Bus简介 224
|11.6.2 添加服务器端的依赖和配置,并启用支持 224
|11.6.3 添加客户端的依赖和配置,并启用支持 225
|11.6.4 启动并刷新客户端的配置 227
|11.6.5 实现配置的自动刷新 228
|11.6.6 局部刷新客户端的配置信息 229
|11.6.7 跟踪Bus事件 229
11.7 实例28:实现配置中心和配置客户端的服务化 230
|11.7.1 实现服务器端服务化 230
|11.7.2 实现客户端服务化 231
-
第12章 用Spring Cloud Alibaba组件实现服务治理和流量控制 232
12.1 认识Spring Cloud Alibaba组件 232
|12.1.1 Spring Cloud Alibaba是什么 232
|12.1.2 Spring Cloud Alibaba、Netflix和Spring Cloud的关系 233
|12.1.3 Spring Cloud Alibaba与Spring Boot、Spring Cloud的版本兼容关系 234
12.2 认识Sentinel 235
|12.2.1 Sentinel概述 235
|12.2.2 安装和启动Sentinel 239
|12.2.3 认识流控规则 239
|12.2.4 降级规则 241
|12.2.5 系统规则 241
|12.2.7 Sentinel对RestTemplate和Feign的支持 242
|12.2.8 Sentinel的规则持久化 243
12.3 用Sentinel实现Spring Cloud项目的流控和降级 244
|12.3.1 实例29:实现直接限流 244
|12.3.2 实例30:实现关联限流 246
|12.3.3 实例31:实现链路限流 247
|12.3.4 测试流控模式 249
|12.3.5 测试降级模式 250
12.4 认识Nacos 251
|12.4.1 Nacos概述 251
|12.4.2 下载和使用Nacos 251
12.5 实例32:用Nacos实现“服务提供者”和“服务消费者” 252
|12.5.1 用Nacos实现“服务提供者” 252
|12.5.2 用Nacos实现“服务消费者” 253
|12.5.3 测试服务接口 254
12.6 实例33:用Nacos实现“配置中心” 254
|12.6.1 添加依赖和配置 255
|12.6.2 创建属性承载类 255
|12.6.3 在Nacos控制台中添加配置 255
12.6.4 测试动态刷新 256
12.6.5 测试配置回滚 257
12.7 实例34:用Nacos存储Sentinel的限流规则 257
|12.7.1 添加依赖和配置 257
|12.7.2 自定义埋点 258
|12.7.3 添加Nacos配置 258
|12.7.4 测试配置的持久化 259
12.8 实例35:实现Nacos的数据持久化和集群 260
|12.8.1 实现Nacos的数据持久化 260
|12.8.2 部署集群 261
-
第13章 用Spring Cloud Security实现微服务安全 264
13.1 认识Spring Security与Spring Cloud Security 264
|13.1.1 Spring Security 264
|13.1.2 Spring Cloud Security 266
13.2 认识OAuth 2.0 267
|13.2.1 OAuth 2.0概述 267
|13.2.2 客户端的授权模式 268
13.3 Spring Cloud Security如何实现OAuth 2.0 273
|13.3.1 认识Oauth 2.0服务提供端 273
|13.3.2 配置授权服务器 274
|13.3.3 配置资源服务器 276
13.4 实例36:用Spring Security实现安全认证和授权 276
|13.4.1 添加依赖和配置数据库 276
|13.4.2 创建用户实体类 277
|13.4.3 实现用户注册和密码加密 278
|13.4.4 自定义认证管理器 279
|13.4.5 实现Spring Security配置类 279
|13.4.6 实现登录验证成功处理类 280
|13.4.7 实现登录验证失败处理类 281
|13.4.8 测试注册和登录 281
13.5 实例37:用OAuth 2.0实现认证和授权 282
|13.5.1 添加OAuth 2.0的依赖 282
|13.5.2 配置认证服务器 282
|13.5.3 配置资源服务器 284
|13.5.4 实现用户实体类和角色映射 284
|13.5.5 实现角色实体类 285
|13.5.6 实现测试控制器 286
|13.5.7 测试用密码模式获取Token 286
|13.5.8 测试携带Token访问资源 288
|13.5.9 测试用授权码模式获得Token 288
13.6 实例38:用MySQL实现Token信息的持久化 290
13.7 实例39:用Redis实现Token信息的持久化 292

-
-------------第4篇 项目实战
-
第14章 实例40:用Spring Cloud实现页面日访问量3000万的某平台微服务架构 296
14.1 本实例的整体架构 296
|14.1.1 实施方案 296
|14.1.2 整体架构 297
14.2 实现“配置中心”以提供配置信息 297
|14.2.1 创建配置文件,并将其上传到Git仓库中 297
|14.2.2 编写“配置服务器”的信息 298
14.3 实现“服务提供者”集群、“服务消费者”及客户端自动配置 298
|14.3.1 实现“服务提供者”集群 298
|14.3.2 实现“服务消费者”,并通过“配置中心”实现客户端的自动配置 299
14.4 用OAuth 2.0实现统一的认证和授权 301
|14.4.1 实现认证服务器 301
|14.4.2 配置“服务消费者”的资源安全 301
14.5 在Spring Cloud中用“Redis+MySQL”实现路由服务器 302
|14.5.1 整体思路 302
|14.5.2 设计并实现自定义路由模型 303
|14.5.3 实现路由信息和版本信息实体 303
|14.5.4 实现路由和版本的控制器 304
|14.5.5 实现路由服务器的服务化 306
14.6 用Spring Cloud Gateway实现网关集群 306
|14.6.1 同步路由信息 306
|14.6.2 转换路由对象 308
|14.6.3 开启计划任务和负载均衡 308
|14.6.4 实现网关的服务化 309
14.7 用Nginx实现负载均衡 309
|14.7.1 认识Nginx 309
|14.7.2 实现网关负载均衡 312
|14.7.3 实现Nginx自身负载均衡 313
14.8 用Spring Boot Admin监控Spring Cloud应用程序 314
|14.8.1 集成Actuator 314
|14.8.2 集成Spring Boot admin以监控应用 316
14.9 集成“Prometheus+Grafana”以监控服务 319
|14.9.1 安装和配置Prometheus 319
|14.9.2 在Spring Cloud中集成Prometheus 321
|14.9.3 用Grafana实现可视化监控 322

-
-------------第5篇 开发运维一体化(DevOps)
-
第15章 基于Docker、K8s、Jenkins的DevOps实践 324
15.1 认识DevOps 324
|15.1.1 软件开发的演变过程 324
|15.1.2 认识DevOps 326
|15.1.3 开发模式的关系 327
|15.1.4 为什么要践行DevOps 328
|15.1.5 了解DevOps工具 329
15.2 认识Docker 332
|15.2.1 认识虚拟机和容器 332
|15.2.2 什么是Docker 334
|15.2.3 Docker的特点 335
|15.2.4 Docker的基本概念 335
15.3 使用Docker 337
|15.3.1 在Linux中安装Docker 337
|15.3.2 在Windows中安装Docker 338
|15.3.3 配置国内镜像加速器 338
|15.3.4 Docker的常用操作 340
15.4 用Docker Compose管理容器 342
|15.4.1 了解Docker Compose工具 342
|15.4.2 安装Docker Compose工具 342
|15.4.3 用Docker Compose工具运行容器 344
15.5 管理镜像 344
|15.5.1 用Docker Hub管理镜像 344
|15.5.2 创建私有仓库 345
15.6 认识Docker Swarm、Kubernetes(K8s)和Jenkins 345
|15.6.1 Docker Swarm 345
|15.6.2 Kubernetes(K8s) 347
|15.6.3 Jenkins 349
|15.6.4 比较Docker、Compose、Swarm、K8s和Jenkins 350
电子工业出版社有限公司店铺主页二维码
电子工业出版社有限公司
电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
扫描二维码,访问我们的微信店铺

Spring Cloud微服务架构实战派

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏