书籍作者:许进 | ISBN:9787111609391 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:2232 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
这是一本实践与理论并重、广度与深度兼顾的Spring Cloud生产实践开发指南,由Spring Cloud中国社区倾力打造,作者来自阿里、蚂蚁金服、京东金融等企业,本书针对Spring Cloud在国内的使用情况,结合国内企业使用Spring Cloud落地微服务架构遇到的问题,提出可落地的解决方案。
本书内容有3大特色:
足够广:详细讲解了Spring Cloud的核心常用组件以及Spring Cloud的增强生态,针对生产实践中常见问题给出可落地的&*佳实践方案,无论您是初学者还是开发人员,还是架构师,都能从此书获益。
有深度:本书对涉及的Spring Cloud组件按照从入门、进阶、实战、扩展增强的顺序循序渐进进行剖析和讲解,帮助作者知其然并知其所以然,授之以渔。
重实践:注重生产实践,通过案例驱动,给出优秀的生产实践方案和优秀的生产配置,帮助读者快速落地企业微服务架构。
全书共25章,分为三个部分:
第一部分 核心组件篇(第1~10章)
主要讲解Spring Cloud的核心组件。首先从应用架构的发展历程讲起,介绍了微服务出现的背景,并对微服务架构的落地提出了相应的解决方案;然后分别详细介绍了Spring Cloud微服务体系中的核心常用组件,如Eureka、Feign、Ribbon、Hystrix、Zuul等;最后通过一个综合案例将前面介绍的组件连接起来,帮助大家融会贯通。
第二部分 进阶实战篇(第11~18章)
在核心组件的基础上,对Config、Consul、认证和鉴权、全链路监控以及对Spring Cloud生态圈中第二代网关Spring Cloud Gateway进行了详细阐述,循序渐进、案例驱动,帮助读者加深对组件的理解和运用,更好地掌握相关内容运用于生产实践。
第三部分 解决方案篇(第19~25章)
主要从解决方案着手,内容包括Spring Cloud与gRPC的整合方式、版本控制与灰度发布、Spring Cloud容器化、Dubbo向Spring Cloud的迁移、分布式事务、领域驱动等生产级实用解决方案,为企业IT架构微服务化和变革保驾护航。
许进
Spring Cloud中国社区创始人,阿里原资深工程师,花名玹霖,专注于基础架构与中间件研发,曾就职于唯品会平台架构部和饿了么。个人网站:http://xujin.org。
钟尊发
Spring Cloud中国社区联合创始人,现就职于京东金融,对微服务有深入研究。
叶志远
Spring Cloud中国社区联合创始人,现就职于蚂蚁金服,花名梓尧。CSDN博客专家,开源社区活跃者,国内Spring Cloud早期实践者
方志朋
Spring Cloud中国社区联合创始人,硕士学历,《深入理解Spring Cloud与微服务构建》作者,CSDN博客专家(阅读量600万+),在社区具有较高活跃度与影响力。
蔡波斯
拥有多年Java开发经验,曾就职于美团、腾讯。国内Spring Cloud领域的早期实践者,现在金融行业从事FinTech相关研发
郭芳碧
多年微服务实践经验,现任职于某互联网金融公司中间件部门。
朱德明
拥有10年Java开发经验,多年技术架构和解决方案经验,现任灵雀云微服务架构师,在微服务领域有着丰富的落地经验,曾任某创业公司技术负责人。
(1)本书由Spring Cloud中国社区官方撰写,基于Spring Cloud的Finchley.RELEASE版本,基于Spring Cloud的Finchley.RELEASE版本,核心成员来自原阿里、蚂蚁金服、京东金融等互联网企业,经验丰富。
(2)本书内容有3大特色:宽度足够广、深度足够深,而且立足于生产实践,直接从生产实践出发,包含大量生产实践的配置
(3)本书得到了来自阿里、腾讯、百度、京东等大型互联网企业的近10位专家的鼎力推荐。
前 言 Preface
随着互联网的快速普及,云计算近年来得到蓬勃发展,企业的IT环境和架构体系也逐渐发生变革,其中最典型的就是过去的单体应用架构发展为当今流行的微服务架构。微服务是一种架构风格,其优势是为软件应用开发带来很大的便利,让敏捷开发和复杂的企业应用快速持续交付成为可能。随着微服务架构的流行,很多企业纷纷使用微服务架构来搭建新的系统或者对历史系统进行重构,但是微服务架构的实施和落地会面临很大的挑战。虽然微服务架构的解决方案很多,但是对于如何真正落地微服务架构,目前还没有公认的技术标准和规范。幸运的是,业界已经有一些很有影响力的开源微服务解决方案,比如2015年年初,Spring团队推出的Spring Cloud,其目标是成为Java领域微服务架构落地的标准。Spring Cloud经过高速迭代和发展,至今已经成为Java领域落地微服务架构的推荐解决方案,为企业IT架构变革保驾护航。
Spring Cloud是一个优质的开源项目,它的稳健发展离不开众多开发人员的实践与反馈,开发人员通过一个社区化的平台去交流学习从而使Spring Cloud逐渐完善。Spring Cloud发展到2016年,得到国内越来越多的人的关注,但是相应的学习交流平台和材料比较分散,这阻碍了Spring Cloud在我国的普及和发展。因此Spring Cloud中国社区应运而生。Spring Cloud中国社区(http://springcloud.cn)是国内首个基于Spring Cloud微服务体系创建的非盈利技术社区,也是国内首个致力于Spring Cloud微服务架构开放交流的社区,是专为Spring Boot或Spring Cloud技术人员提供分享和交流服务的平台,目的是推动Spring Cloud在中国的普及和应用。
Contents 目录
前言
第1章微服务与Spring Cloud1
1.1微服务架构概述1
1.1.1应用架构的发展1
1.1.2微服务架构3
1.1.3微服务解决方案4
1.2Spring Cloud与中间件5
1.2.1中间件概述5
1.2.2什么是Spring Cloud5
1.2.3Spring Cloud项目模块5
1.2.4Spring Cloud与服务治理
中间件6
1.2.5Spring Cloud与配置中心
中间件6
1.2.6Spring Cloud与网关中间件8
1.2.7Spring Cloud与全链路监控
中间件9
1.3Spring Cloud增强生态10
1.3.1Spring Cloud分布式事务10
1.3.2Spring Cloud与领域驱动10
1.3.3Spring Cloud与gRPC11
1.3.4Spring Cloud与Dubbo生态融合11
1.4本章小结11
第2章Spring Cloud Eureka上篇12
2.1服务发现概述12
2.1.1服务发现由来12
2.1.2Eureka简介14
2.1.3服务发现技术选型15
2.2Spring Cloud Eureka入门案例16
2.3Eureka Server的REST API简介20
2.3.1REST API列表20
2.3.2REST API实例20
2.4本章小结26
第3章Spring Cloud Eureka下篇27
3.1Eureka的核心类27
3.1.1InstanceInfo27
3.1.2LeaseInfo28
3.1.3ServiceInstance29
3.1.4InstanceStatus29
3.2服务的核心操作30
3.2.1概述30
3.2.2LeaseManager30
3.2.3LookupService31
3.3Eureka的设计理念31
3.3.1概述31
3.3.2AP优于CP32
3.3.3Peer to Peer架构33
3.3.4Zone及Region设计34
3.3.5SELF PRESERVATION设计36
3.4Eureka参数调优及监控36
3.4.1核心参数36
3.4.2参数调优39
3.4.3指标监控40
3.5Eureka实战41
3.5.1Eureka Server在线扩容41
3.5.2构建Multi Zone Eureka Server47
3.5.3支持Remote Region52
3.5.4开启HTTP Basic认证58
3.5.5启用https61
3.5.6Eureka Admin66
3.5.7基于metadata路由实例67
3.6Eureka故障演练69
3.6.1Eureka Server全部不可用69
3.6.2Eureka Server部分不可用71
3.6.3Eureka高可用原理73
3.7本章小结74
第4章Spring Cloud Feign的
使用扩展75
4.1Feign概述75
4.1.1什么是Feign75
4.1.2Feign的入门案例76
4.1.3Feign的工作原理78
4.2Feign的基础功能79
4.2.1FeignClient注解剖析79
4.2.2Feign开启GZIP压缩79
4.2.3Feign支持属性文件配置80
4.2.4Feign Client开启日志81
4.2.5Feign的超时设置82
4.3Feign的实战运用83
4.3.1Feign默认Client的替换83
4.3.2Feign的Post和Get的多
参数传递86
4.3.3Feign的文件上传90
4.3.4解决Feign首次请求失败问题92
4.3.5Feign返回图片流处理方式93
4.3.6Feign调用传递Token93
4.4venus-cloud-feign设计与使用94
4.4.1venus-cloud-feign的设计94
4.4.2venus-cloud-feign的使用96
4.5本章小结98
第5章Spring Cloud Ribbon
实战运用99
5.1Spring Cloud Ribbon概述99
5.1.1Ribbon与负载均衡99
5.1.2入门案例100
5.2Spring Cloud Ribbon实战105
5.2.1Ribbon负载均衡策略与
自定义配置105
5.2.2Ribbon超时与重试107
5.2.3Ribbon的饥饿加载108
5.2.4利用配置文件自定义Ribbon
客户端108
5.2.5Ribbon脱离Eureka的使用108
5.3Spring Cloud Ribbon进阶109
5.3.1核心工作原理109
5.3.2负载均衡策略源码导读113
5.4本章小结114
第6章Spring Cloud Hystrix
实战运用115
6.1Spring Cloud Hystrix概述115
6.1.1解决什么问题116
6.1.2设计目标117
6.2Spring Cloud Hystrix实战运用118
6.2.1入门示例118
6.2.2Feign中使用断路器120
6.2.3Hystrix Dashboard121
6.2.4Turbine聚合Hystrix124
6.2.5Hystrix异常机制和处理126
6.2.6Hystrix配置说明128
6.2.6Hystrix线程调整和计算129
6.2.7Hystrix请求缓存130
6.2.8Hystrix Request Collapser134
6.2.9Hystrix线程传递及并发策略137
6.2.10Hystrix命令注解142
6.3本章小结144
第7章Spring Cloud Zuul基础篇145
7.1Spring Cloud Zuul概述145
7.2Spring Cloud Zuul入门案例146
7.3Spring Cloud Zuul典型配置149
7.3.1路由配置149
7.3.2功能配置152
7.4本章小结154
第8章Spring Cloud Zuul中级篇155
8.1Spring Cloud Zuul Filter链155
8.1.1工作原理155
8.1.2Zuul原生Filter158
8.1.3多级业务处理160
8.1.4使用Groovy编写Filter165
8.2Spring Cloud Zuul权限集成168
8.2.1应用权限概述168
8.2.2Zuul+OAuth2.0+JWT实战169
8.3Spring Cloud Zuul限流176
8.3.1限流算法176
8.3.2限流实战177
8.4Spring Cloud Zuul动态路由179
8.4.1动态路由概述179
8.4.2动态路由实现原理剖析180
8.4.3基于DB的动态路由实战182
8.5Spring Cloud Zuul灰度发布185
8.5.1灰度发布概述185
8.5.2灰度发布实战之一186
8.6Spring Cloud Zuul文件上传189
8.6.1文件上传实战189
8.6.2文件上传乱码解决191
8.7Spring Cloud Zuul实用小技巧192
8.7.1饥饿加载192
8.7.2请求体修改192
8.7.3使用OkHttp替换HttpClient193
8.7.4重试机制194
8.7.5Header传递195
8.7.6整合Swagger2调试源服务195
8.8本章小结197
第9章Spring Cloud Zuul高级篇198
9.1Spring Cloud Zuul多层负载198
9.1.1痛点场景198
9.1.2解决方案198
9.2Spring Cloud Zuul应用优化200
9.2.1概述200
9.2.2容器优化201
9.2.3组件优化202
9.2.4JVM参数优化203
9.2.5内部优化204
9.3Spring Cloud Zuul原理&核心
源码解析205
9.3.1工作原理与生命周期205
9.3.2Filter装载与Filter链实现208
9.3.3核心路由实现210
9.4本章小结213
第10章Spring Cloud基础综合
案例214
10.1基础框架214
10.1.1搭建说明214
10.1.2技术方案214
10.1.3具体实现215
10.2实战扩展217
10.2.1公共包 (对象,拦截器,
工具类等)218
10.2.2用户上下文对象传递218
10.2.3Zuul的Fallback机制221
10.3生产环境各组件参考配置222
10.3.1Eureka推荐配置222
10.3.2Ribbon推荐配置223
10.3.3Hystrix推荐配置223
10.3.4Zuul推荐配置223
10.4本章小结224
第11章Spring Cloud Config上篇225
11.1Spring Cloud Config配置中心
概述225
11.1.1什么是配置中心225
11.1.2Spring Cloud Config227
11.1.3Spring Cloud Config入门
案例228
11.2刷新配置中心信息234
11.2.1手动刷新操作234
11.2.2结合Spring Cloud Bus
热刷新237
11.3本章小结244
第12章Spring Cloud Config下篇245
12.1服务端git配置详解与实战245
12.1.1Git多种配置详解概述245
12.1.2Git中URI占位符245
12.1.3模式匹配和多个存储库250
12.1.4路径搜索占位符251
12.2关系型数据库的配置中心的
实现251
12.2.1Spring Cloud Config基于
MySQL的配置概述251
12.2.2Spring Cloud Config与MySQL
结合案例252
12.3非关系型数据库的配置中心的
实现255
12.3.1Spring Cloud Config基于
MongoDB的配置概述255
12.3.2Spring Cloud Config MongoDB
案例256
12.4Spring Cloud Config使用技能259
本地参数的覆盖远程参数259
12.5Spring Cloud Config功能扩展260
12.5.1客户端自动刷新260
12.5.2客户端回退功能264
12.5.3客户端的安全认证机制JWT270
12.6高可用部分285
12.6.1客户端高可用285
12.6.2服务端高可用293
12.7Spring Cloud与Apollo配置使用300
12.7.1Apollo简介300
12.7.2Apollo具备功能300
12.7.3Apollo总体架构模块300
12.7.4客户端设计301
12.7.5Apollo运行环境方式302
12.8Spring Cloud与Apollo结合
使用实战303
......