《SpringCloud微服务架构实战派springcloud入门教程书微服务架构设计》[87M]百度网盘|pdf下载|亲测有效
《SpringCloud微服务架构实战派springcloud入门教程书微服务架构设计》[87M]百度网盘|pdf下载|亲测有效

SpringCloud微服务架构实战派springcloud入门教程书微服务架构设计 pdf下载

出版社 电子工业出版社官方旗舰店
出版年 2025
页数 390页
装帧 精装
评分 8.9(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供SpringCloud微服务架构实战派springcloud入门教程书微服务架构设计电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com


内容介绍

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

作者介绍

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

关联推荐

本书适合具备Java基础的开发人员、对微服务架构和Spring Cloud感兴趣的读者、了解Spring或Spring Boot的开发人员自学之用。
目录

-------------第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 组件实现服务治理和流量控制 232
12.1  认识Spring Cloud 组件 232
|12.1.1  Spring Cloud 是什么 232
|12.1.2  Spring Cloud 、Netflix和Spring Cloud的关系 233
|12.1.3  Spring Cloud 与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