Spring Cloud微服务架构实战派龙中华pdf下载

Spring Cloud微服务架构实战派龙中华百度网盘pdf下载

作者:
简介:Spring Cloud微服务架构实战派龙中华
出版社:
出版时间:2020-04
pdf下载价格:9.00¥


预览


内容介绍

作  者:龙中华 著
定  价:89
出 版 社:电子工业出版社
出版日期:2020年04月01日
页  数:351
装  帧:平装
ISBN:9787121386251
篇入门
章进入微服务世界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.2Dubbo9
1.2.3SpringCloud10
1.3服务网格(ServiceMesh)框架Istio11
1.4比较Dubbo、SpringCloud和Istio12
1.4.1对比架构12
1.4.2对比各项数据15
1.4.3总结15
第2章准备开发环境和工具17
2.1搭建环境17
2.1.1安装Java开发环境JDK17
2.1.2配置JDK的环境变量18
2.2安装和配置Maven20
2.2.1安装和配置20
2.2.2认识pom.xml文件22
2.2.3了解Maven的运作方式25
2.2.4配置国内仓库26
2.3安装及配置开发工具IDEA27
2.3.1安装IDEA27
2.3.2配置IDEA的Maven环境29
2.3.3安装SpringAssistant插件29
2.4安装及配置开发工具Eclipse30
2.4.1安装Eclipse30
2.4.2安装SpringTools4插件30
2.4.3配置Eclipse的Maven环境31
2.4.4创建SpringCloud项目32
2.5熟悉Spring官方开发工具STS32
2.6如何使用本书源码33
2.6.1在IDEA中使用33
2.6.2在Eclipse(STS)中使用33
第3章实例1:用SpringCloud实现一个微服务系统35
3.1本实例的架构和实现步骤35
3.2创建SpringCloud项目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.12PC/3PC算法模式58
4.4.2TCC事务机制模式60
4.4.3消息中间件模式60
4.4.4Saga模式61
4.4.5Paxos算法模式61
4.5跨服务的查询模式62
4.5.1API组合器模式62
4.5.2CQRS模式62
4.6微服务部署63
4.6.1部署模式63
4.6.2升级模式
4.7微服务架构与云原生的关系66
4.7.1了解云原生66
4.7.2微服务架构和云原生架构的区别67
第5章SpringCloud基础68
5.1了解SpringCloud生态68
5.1.1SpringCloud的总体架构68
5.1.2主要子项目69
5.1.3Netflix家族项目70
5.1.4家族项目71
5.1.5其他子项目72
5.1.6常用的技术栈73
5.2了解SpringCloud74
5.2.1SpringCloud与Spring、SpringBoot的关系74
5.2.2SpringCloud的版本76
5.2.3SpringCloud项目的结构77
5.2.4SpringCloud的入口类78
5.2.5SpringCloud的自动配置78
5.2.6开箱即用79
5.3了解注解80
5.3.1什么是注解80
5.3.2SpringBoot的系统注解80
5.3.3SpringBoot的常用注解81
5.3.4SpringCloud的常用注解86
5.4了解Starter87
5.4.1SpringBoot的Starter87
5.4.2SpringCloud的Starter88
5.4.3如何使用Starter88
5.5使用配置文件88
5.5.1配置文件application.properties89
5.5.2实例2:使用配置文件application.properties91
5.5.3配置文件application.yml93
5.5.4实例3:使用配置文件application.yml94
5.5.5实例4:用application.yml和application.properties配置多环境98
5.5.6了解application.yml和application.properties的迁移100
5.5.7比较配置文件bootstrap和application100
5.6应用程序分层开发模式――MVC101
5.6.1了解MVC模式101
5.6.2MVC和三层架构的关系102
5.7响应式编程――WebFlux103
5.7.1什么是WebFlux103
5.7.2比较MVC和WebFlux103
5.7.3比较Mono和Flux105
5.7.4开发WebFlux的流程106
5.8了解SpringCloudCommons106
5.8.1SpringCloud的上下文107
5.8.2SpringCloud的公共抽象类107
第3篇进阶
第6章用Consul实现服务治理110
6.1为什么需要服务治理110
6.2主流的“服务中心”111
6.2.1Eureka111
6.2.2Zookeeper112
6.2.3ETCD113
6.2.4Consul113
6.2.5比较Eureka、Consul、ETCD、Zookeeper和Nacos114
6.2.6了解CAP(一致性、可用性、分区容错性)115
6.2.7在容器化时代如何选择“服务中心”115
6.3认识“服务发现”接口116
6.3.1如何进行服务的注册和发现116
6.3.2@EnableDiscoveryClient与@EnableEurekaClient的区别117
6.4认识Consul117
6.4.1Consul的术语117
6.4.2Consul的工作原理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迁移到Consul129
第7章用Ribbon和Feign实现客户端负载均衡和服务调用130
7.1认识负载均衡130
7.1.1服务器端负载均衡130
7.1.2客户端负载均衡131
7.2认识Ribbon131
7.2.1Ribbon的工作原理131
7.2.2Ribbon的主要组件132
7.2.3认识负载均衡器133
7.2.4了解注解@LoadBalanced135
7.2.5Ping机制136
7.3认识负载均衡策略137
7.3.1Ribbon支持的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了解Feign143
7.5.1Feign简介143
7.5.2了解Feign的Bean144
7.5.3压缩请求和响应145
7.5.4了解注解@QueryMap145
7.5.5使用Feign146
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用T方式构建多参数请求150
7.9Ribbon和Feign的区别151
第8章用Hystrix实现容错处理152
8.1雪崩效应152
8.1.1什么是雪崩效应152
8.1.2造成服务雪崩的原因153
8.2主流的容错项目155
8.2.1流量防卫兵Sentinel155
8.2.2容错框架Resilience4j156
8.2.3容错框架Hystrix156
8.2.4对比Sentinel、Hystrix和Resilience4j157
8.3Hystrix处理容错的机制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:用HystrixDashboard实现数据的可视化监控163
8.5.1添加依赖和配置1
8.5.2配置启动类和Servlet165
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章用SpringCloudGateway构建微服务网关169
9.1认识微服务网关169
9.1.1什么是微服务网关169
9.1.2为什么要使用微服务网关169
9.1.3认识SpringCloudGateway170
9.1.4SpringCloudGateway的工作流程171
9.1.5比较Zuul与SpringCloudGateway172
9.2路由(Route)173
9.2.1认识路由的谓词接口和谓词工厂173
9.2.2认识配置路由规则的方式173
9.2.3实例13:用JavaAPI和配置文件方式构建路由175
9.2.4实例14:应用SpringCloudGateway的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:用SpringCloudGateway内置的限流工厂实现限流195
9.6高可用197
9.7SpringCloudGateway的端点197
9.7.1认识SpringCloudGateway的端点197
9.7.2实例20:通过SpringCloudGateway的端点添加动态路由198
0章用SpringCloudSleuth实现微服务链路跟踪200
10.1微服务链路跟踪200
10.1.1为什么要实现微服务链路跟踪200
10.1.2微服务链路跟踪的技术要求201
10.2一些开源的链路跟踪项目――Skywalking、Pinpoint、Zipkin和CAT202
10.3认识Sleuth和Zipkin203
10.3.1Sleuth203
10.3.2Zipkin203
10.4实例21:用Sleuth实现日志采样204
10.5实例22:在SpringCloud中使用Zipkin205
10.5.1搭建Zipkin服务器205
10.5.2添加依赖和配置206
10.5.3测试链路数据207
1章用SpringCloudConfig配置微服务209
11.1了解配置中心209
11.1.1配置信息的管理方式209
11.1.2对比主流配置中心211
11.1.3了解SpringCloudConfig212
11.1.4SpringCloudConfig的常用配置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:用SpringCloudBus自动刷新配置信息224
11.6.1SpringCloudBus简介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
2章用SpringCloud组件实现服务治理和流量控制232
12.1认识SpringCloud组件232
12.1.1SpringCloud是什么232
12.1.2SpringCloud、Netflix和SpringCloud的关系233
12.1.3SpringCloud与SpringBoot、SpringCloud的版本兼容关系234
12.2认识Sentinel235
12.2.1Sentinel概述235
12.2.2安装和启动Sentinel239
12.2.3认识流控规则239
12.2.4降级规则241
12.2.5系统规则241
12.2.7Sentinel对RestTemplate和Feign的支持242
12.2.8Sentinel的规则持久化243
12.3用Sentinel实现SpringCloud项目的流控和降级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认识Nacos251
12.4.1Nacos概述251
12.4.2下载和使用Nacos251
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
3章用SpringCloudSecurity实现微服务安全2
13.1认识SpringSecurity与SpringCloudSecurity2
13.1.1SpringSecurity2
13.1.2SpringCloudSecurity266
13.2认识OAuth2.0267
13.2.1OAuth2.0概述267
13.2.2客户端的授权模式268
13.3SpringCloudSecurity如何实现OAuth2.0273
13.3.1认识Oauth2.0服务提供端273
13.3.2配置授权服务器274
13.3.3配置资源服务器276
13.4实例36:用SpringSecurity实现安全认证和授权276
13.4.1添加依赖和配置数据库276
13.4.2创建用户实体类277
13.4.3实现用户注册和密码加密278
13.4.4自定义认证管理器279
13.4.5实现SpringSecurity配置类279
13.4.6实现登录验证成功处理类280
13.4.7实现登录验证失败处理类281
13.4.8测试注册和登录281
13.5实例37:用OAuth2.0实现认证和授权282
13.5.1添加OAuth2.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测试用密码模式获取Token286
13.5.8测试携带Token访问资源288
13.5.9测试用授权码模式获得Token288
13.6实例38:用MySQL实现Token信息的持久化290
13.7实例39:用Redis实现Token信息的持久化292
第4篇项目实战
4章实例40:用SpringCloud实现页面日访问量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用OAuth2.0实现统一的认证和授权301
14.4.1实现认证服务器301
14.4.2配置“服务消费者”的资源安全301
14.5在SpringCloud中用“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用SpringCloudGateway实现网关集群306
14.6.1同步路由信息306
14.6.2转换路由对象308
14.6.3开启计划任务和负载均衡308
14.6.4实现网关的服务化309
14.7用Nginx实现负载均衡309
14.7.1认识Nginx309
14.7.2实现网关负载均衡312
14.7.3实现Nginx自身负载均衡313
14.8用SpringBootAdmin监控SpringCloud应用程序314
14.8.1集成Actuator314
14.8.2集成SpringBootadmin以监控应用316
14.9集成“Prometheus+Grafana”以监控服务319
14.9.1安装和配置Prometheus319
14.9.2在SpringCloud中集成Prometheus321
14.9.3用Grafana实现可视化监控322
第5篇开发运维一体化(DevOps)
5章基于Docker、K8s、Jenkins的DevOps实践324
15.1认识DevOps324
15.1.1软件开发的演变过程324
15.1.2认识DevOps326
15.1.3开发模式的关系327
15.1.4为什么要践行DevOps328
15.1.5了解DevOps工具329
15.2认识Docker332
15.2.1认识虚拟机和容器332
15.2.2什么是Docker334
15.2.3Docker的特点335
15.2.4Docker的基本概念335
15.3使用Docker337
15.3.1在Linux中安装Docker337
15.3.2在Windows中安装Docker338
15.3.3配置国内镜像加速器338
15.3.4Docker的常用操作340
15.4用DockerCome管理容器342
15.4.1了解DockerCome工具342
15.4.2安装DockerCome工具342
15.4.3用DockerCome工具运行容器344
15.5管理镜像344
15.5.1用DockerHub管理镜像344
15.5.2创建私有仓库345
15.6认识DockerSwarm、Kubernetes(K8s)和Jenkins345
15.6.1DockerSwarm345
15.6.2Kubernetes(K8s)347
15.6.3Jenkins349
15.6.4比较Docker、Come、Swarm、K8s和Jenkins350

内容简介

本书针对Spring Cloud Greenwich.SR2版本+Spring Boot的2.1.X.RELEASE版本。在编写过程中,不仅考虑到在企业任职所需的技能,还考虑到求职面试时可能会遇到的知识点。
本书采用"知识点+实例"形式编写,共有"39个基于知识点的实例+1个综合性项目",深入讲解了Spring Cloud的各类组件、微服务架构的解决方案和开发实践,以及容器、Kubemetes和Jenkins等DevOps(开发运维一体化)相关知识。
本书介绍每一个知识点的主脉络是:它是什么、为什么用、怎样用、为什么要这样用、如何用得更好、有什么佳的实践。
本书适合具备Java基础的开发人员、对微服务架构和Spring Cloud感兴趣的读者、了解Spring或SpringBoot的开发人员自学之用。