书刊介绍
《微服务从小白到专家:Spring Cloud和Kubernetes实战》内容简介
本书源码以Spring Boot 2.2.x、Spring Cloud Hoxton和Kubernetes 1.19.2为基础,从Spring Boot单体应用的搭建,到Spring Cloud微服务架构升级,再到使用Docker和Kubernetes容器编排技术做容器化改造,由浅入深、逐步讲解,使读者全面掌握主流微服务架构和容器编排方案。本书共22章,分为三个部分。第一部分,讲解Spring Boot的核心功能和底层原理,手把手带读者搭建一个基于Spring Boot的优惠券平台单体应用系统。第二部分,讲解Spring Cloud微服务技术的应用,涵盖了Spring Cloud Netflix和Spring Cloud阿里巴巴两大组件库的核心组件,在项目实战环节,将Spring Cloud微服务技术应用到优惠券项目中,让读者亲身体验从单体应用升级为微服务架构的过程。第三部分,深入讲解Docker容器技术和Kubernetes容器编排技术的核心功能,并对优惠券项目做容器化改造。本书紧扣实战、学练结合,适合具备一定Java基础的开发人员、对微服务架构和Spring Cloud技术及容器编排技术感兴趣的读者。对处在微服务架构转型期的团队来说,本书具有很大的实践指导价值。
姚秋辰 PayPal China研发经理,拥有十余年系统架构设计与团队管理经验,专注于互联网电商、金融和支付等领域的高可用系统设计,在微服务系统的架构设计上有丰富的实践经验。曾就职于eBay、阿里、SAP和HP,参与或主导过多个大型应用的微服务改造、稳定性优化和主链路高可用等方案设计。
张昕 StubHub国际互联网票务公司DevOps团队和云平台负责人,OpenGroup认证架构大师,前IBM和eBay高级架构师。十余年系统架构设计与咨询管理经验,曾主导多家国内外大型金融机构、电信运营商和互联网公司的系统优化、云平台转型、容灾多活、单元化设计,对微服务拆分管理、容器编排部署、系统安全性、可用性、扩展性等设计有着丰富的实战经验。
卿睿 PayPal高级架构师,十多年的架构设计经验,涉足的领域从企业应用到大型互联网产品。在分布式和大型系统设计方面都有丰富的理论知识和实践经验,主导过多个全球性项目的架构设计和落地。对DDD有深入的认知,并基于此打造了多个从0到1的产品。此外,曾带领团队完成多个大型系统微服务化改造和云架构迁移。曾先后在HP、Accenture和eBay等公司担任架构师,目前专注于电商、合规等领域。作品目录
推荐序
专家力荐
前言
第1章热身运动
1.1、准备工作
1.2、Java
Web开发的进化史
第2章Spring
Boot介绍
2.1、Spring
Boot的前尘往事
2.2、Spring
Boot的设计理念
2.3、Spring
Boot的核心功能
第3章Spring
Boot实战
3.1、创建Spring
Boot项目
3.2、项目运行打包
3.3、Spring
Boot管理日志
3.4、数据访问
3.5、消息系统
3.6、应用安全管理
3.7、定时任务
3.8、Spring
Boot项目测试
第4章微服务与Spring
Cloud
4.1、什么是微服务架构
4.2、微服务的拆分规范
4.3、大厂微服务架构的服务治理方案
4.4、了解Spring
Cloud
4.5、了解Spring
Cloud组件库
4.6、实战项目技术选型
第5章使用Eureka实现服务治理
5.1、什么是服务治理
5.2、Spring
Cloud中常用的注册中心
5.3、分布式系统理论
5.4、Eureka核心概念
5.5、优惠券项目改造——高可用注册中心
5.6、coupon-template-service微服务架构升级
5.7、改造coupon-calculator
5.8、改造coupon-user-service服务
5.9、Eureka中的其他配置参数
第6章使用Nacos实现服务治理
6.1、什么是Nacos
6.2、Nacos的核心功能
6.3、Nacos下载与安装
6.4、Nacos实战
第7章使用Ribbon实现负载均衡
7.1、什么是负载均衡
7.2、了解Ribbon
7.3、了解Ribbon的负载均衡器
7.4、IPing机制
7.5、微服务项目架构升级
第8章使用OpenFeign实现服务间调用
8.1、Feign
8.2、微服务架构升级——使用Feign代理接口调用
第9章使用Hystrix实现服务间容错
9.1、Hystrix
9.2、Hystrix的核心概念
9.3、微服务架构升级——配置熔断和降级
9.4、微服务架构升级——利用Turbine收集Hystrix信息
9.5、微服务架构升级——利用Hystrix
Dashboard观察服务健康度
9.6、启用Hystrix
Dashboard观察服务状态
第10章使用Sentinel实现限流控制
10.1、服务容错
10.2、Sentinel简介
10.3、Sentinel控制台
10.4、Sentinel与Spring
Cloud的集成
10.5、使用Sentinel实现降级控制
10.6、使用Sentinel实现限流控制
10.7、Sentinel的日志
第11章使用Spring
Cloud
Config和Bus搭建配置中心
11.1、配置中心在微服务中的应用
11.2、了解Spring
Cloud
Config和Bus
11.3、准备工作——创建GitHub文件
11.4、微服务架构升级——搭建高可用的配置中心
11.5、GitHub配置文件命名规则
11.6、对GitHub中的配置项进行加解密
11.7、微服务架构升级——从配置中心读取配置项
第12章使用Spring
Cloud
Gateway搭建服务网关
12.1、了解微服务网关
12.2、Spring
Cloud
Gateway的核心概念——路由、谓词和过滤器
12.3、路由功能
12.4、微服务架构改造——搭建网关模块
12.5、微服务架构升级——使用Redis+Lua做流控
第13章使用Sleuth进行调用链路追踪
13.1、为什么微服务架构需要链路追踪
13.2、链路追踪技术介绍
13.3、Sleuth基本数据结构
13.4、微服务架构升级——集成Sleuth实现链路追踪
13.5、微服务架构升级——搭建Zipkin服务器
13.6、微服务架构升级——搭建ELK环境
第14章使用Stream集成消息队列
14.1、了解Stream
14.2、消息队列在微服务架构中的应用
14.3、消息队列的概念
14.4、微服务架构升级——异步分发优惠券
14.5、微服务架构升级——Stream异常处理
14.6、Stream实现延迟消息
第15章使用Seata实现分布式事务
15.1、为什么需要分布式事务
15.2、分布式事务的替代方案
15.3、传统的XA分布式事务解决方案
15.4、Seata框架介绍
15.5、Seata的AT模式
15.6、微服务架构升级——搭建Seata服务器
15.7、微服务架构升级——应用改造
第16章走进容器化的世界
16.1、微服务落地的难点
16.2、容器技术的演进
16.3、容器编排技术先睹为快
第17章Docker容器技术
17.1、从HelloWorld起步
17.2、Docker架构
17.3、Docker镜像
17.4、Docker容器
17.5、Docker存储
17.6、Docker网络
17.7、进一步感受Docker的魅力
17.8、镜像仓库
17.9、【优惠券项目落地】——Docker容器化
第18章Kubernetes基础
18.1、了解容器编排
18.2、了解Kubernetes
18.3、Kubernetes基本概念
18.4、Kubernetes集群搭建
18.5、Pod管理
18.6、Controller管理
18.7、【优惠券项目落地】——Kubernetes容器化管理
第19章Kubernetes网络互联
19.1、跨节点网络
19.2、服务发现与负载均衡
19.3、【优惠券项目落地】——服务发现和互联
第20章Kubernetes数据存储
20.1、Volume卷
20.2、ConfigMap和Secret
20.3、【优惠券项目落地】——配置和磁盘管理
第21章Kubernetes高级功能
21.1、容器化的非功能性需求
21.2、安全性
21.3、可用性
21.4、扩展性
21.5、易用性
21.6、可观察性
21.7、【优惠券项目落地】——Kubernetes容器架构终态
第22章Service
Mesh
22.1、Service
Mesh在微服务中的应用
22.2、从BoofInfo样例起步
22.3、了解Istio架构
22.4、服务治理
22.5、服务安全
22.6、服务监控
22.7、【优惠券项目落地】——非侵入式容器进阶态