Spring Cloud Alibaba与Kubernetes微服务容器化实践
- ISBN:9787302619499
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:260
- 出版时间:2022-12-01
- 条形码:9787302619499 ; 978-7-302-61949-9
本书特色
以实现分布式高并发微服务项目为目标,全面介绍Spring Cloud Alibaba微服务框架各个组件的功能与使用场景。 介绍了如何使用Spring Cloud Alibaba组件实现服务治理、负载均衡、安全管理、分布式事务、消息发送和服务监控等微服务项目的技术要点。 详细介绍了如何使用Docker和Kubernetes容器组件管理微服务项目的实践要点。 介绍了基于Jenkins的微服务项目的集成技术,以使读者能从项目架构和部署层面掌握微服务项目的开发技巧。 全书注重实践并辅之以原理,提供了翔实的案例和经过实践的源码,可以帮助读者高效地掌握微服务开发与部署的企业级开发技能。 实战讲解,提升你的段位代码详尽剖析,易学易用
内容简介
本书围绕分布式微服务的项目需求,全面讲述了Spring Cloud Alibaba组件实现服务治理、负载均衡、安全管理、分布式事务、消息发送和服务监控的技术要点,以及基于Docker与Kubernetes容器化项目管理的相关技术。主要内容包括:Spring Cloud Alibaba体系架构概述,用Nacos和Nacos集群搭建基于服务治理架构的实践要点,用Ribbon实现负载均衡的做法,基于Sentinel组件实现熔断和限流等安全需求的实践要点,用Gateway组件搭建网关的实践要点,用OpenFeign和Dubbo搭建远程调用体系的实践要点,基于Spring Cloud Stream搭建消息通信体系的实践要点,用JPA与Redis与MyCat搭建微服务数据服务层的实践要点,用Seata组件构建分布式事务架构的实践要点和用Skywaiking组件搭建微服务监控体系的实践要点,基于Docker与Kubernetes容器组件搭建微服务体系,用Jenkins组件实践集成化项目部署流程的相关技术等内容。 本书技术优选,注重实践,适合有一定Java基础的开发人员和学生阅读,也可以供培训机构和大专院校作为教学用书。
目录
第1章Spring Cloud Alibaba与微服务架构1
1.1微服务架构与Alibaba解决方案1
1.1.1单体架构与微服务架构1
1.1.2微服务架构的优势与挑战2
1.1.3Spring Cloud Alibaba微服务解决方案3
1.1.4Spring Boot和Spring Cloud Alibaba的关系3
1.2搭建开发环境4
1.2.1安装JDK4
1.2.2安装IntelliJ IDEA4
1.2.3安装Docker环境5
1.3搭建Spring Boot单体服务5
1.3.1在IDEA中创建Spring Boot项目5
1.3.2编写pom.xml7
1.3.3编写启动类8
1.3.4编写控制器类8
1.3.5编写配置文件9
1.3.6启动Spring Boot,观察运行效果9
1.4动手练习9
第2章Spring Boot整合Nacos11
2.1认识和安装Nacos11
2.1.1Nacos与注册中心11
2.1.2Nacos与配置中心12
2.1.3搭建Nacos环境,启动Nacos组件12
2.1.4观察可视化管理界面12
2.2Spring Boot整合Nacos注册中心13
2.2.1引入注册中心后的框架图13
2.2.2创建服务提供者项目13
2.2.3创建服务消费者项目15
2.2.4启动Spring Boot类,观察注册中心的效果17
2.3用Nacos配置中心管理配置参数18
2.3.1在配置中心设置参数18
2.3.2在项目中使用参数19
2.4搭建高可用的Nacos集群21
2.4.1配置Nacos的持久化效果21
2.4.2搭建集群22
2.4.3观察集群效果23
2.4.4以集群的方式管理配置24
2.4.5以集群的方式管理服务24
2.5动手练习25
第3章负载均衡组件Ribbon27
3.1负载均衡与Ribbon组件27
3.1.1微服务架构中的负载均衡需求27
3.1.2Ribbon组件介绍28
3.1.3Ribbon和Nacos的整合方式28
3.2Ribbon实现负载均衡的范例28
3.2.1项目框架图29
3.2.2编写服务提供者项目29
3.2.3在服务调用者项目里引入Ribbon31
3.2.4观察负载均衡效果33
3.3Ribbon实战要点分析34
3.3.1设置不同的负载均衡策略34
3.3.2配置全局性的Ribbon参数34
3.3.3实现Ribbon饥饿加载模式35
3.3.4Ribbon常用参数分析35
3.4Ribbon整合Nacos注册中心集群36
3.4.1整合后的系统架构36
3.4.2Ribbon整合Nacos集群的实现步骤36
3.5动手练习37
第4章限流与防护组件Sentinel38
4.1微服务体系中的限流和防护需求38
4.1.1限流38
4.1.2熔断38
4.1.3服务降级39
4.2Sentinel组件介绍39
4.2.1搭建Sentinel环境39
4.2.2启动Sentinel控制台40
4.3通过Sentinel实现限流40
4.3.1创建项目,引入依赖包40
4.3.2编写启动类和配置文件41
4.3.3编写控制器类42
4.3.4在控制台里设置限流参数42
4.3.5观察限流效果44
4.4实现热点限流效果45
4.4.1定义热点限流方法45
4.4.2设置热点限流参数45
4.4.3观察热点限流效果46
4.4.4配置参数例外项47
4.5实现熔断效果48
4.5.1定义含熔断效果的方法48
4.5.2设置慢调用比例熔断参数48
4.5.3观察熔断效果50
4.5.4设置异常熔断参数51
4.6实现服务降级效果52
4.6.1实现因限流而导致的服务降级52
4.6.2通过fallback参数实现服务降级53
4.6.3服务降级的实践做法53
4.7动手练习54
第5章网关组件Gateway55
5.1Gateway网关组件概述55
5.2在微服务体系中引入Gateway组件56
5.2.1编写业务方法56
5.2.2创建网关项目56
5.2.3实现简单转发功能57
5.2.4网关的过滤器58
5.2.5网关的全局过滤器59
5.2.6网关的断言60
5.3Gateway整合Nacos,实现负载均衡61
5.3.1Gateway整合Nacos的架构图61
5.3.2基于Nacos的业务集群62
5.3.3以负载均衡的方式转发请求62
5.4Gateway整合Sentinel和Nacos64
5.4.1整合后的架构图64
5.4.2搭建网关层项目65
5.4.3启动项目和组件66
5.4.4根据路由规则限流67
5.4.5根据API分组限流68
5.4.6配置服务熔断效果69
5.5通过Gateway实现灰度发布69
5.5.1灰度发布的做法69
5.5.2准备灰度发布的环境70
5.5.3用Gateway实现灰度发布70
5.5.4观察灰度发布的效果71
5.6动手练习72
第6章声明式服务调用框架OpenFeign73
6.1OpenFeign框架概述73
6.2使用OpenFeign框架调用服务73
6.2.1基于Nacos的服务提供者74
6.2.2OpenFeign调用服务实现代码74
6.2.3观察OpenFeign的效果76
6.2.4设置超时时间76
6.2.5设置OpenFeign的日志级别77
6.2.6压缩请求和返回78
6.3实现负载均衡和服务降级78
6.3.1搭建业务集群78
6.3.2以负载均衡方式调用服务79
6.3.3观察负载均衡效果80
6.3.4引入服务降级效果81
6.4动手练习82
第7章远端调用组件Dubbo83
7.1Dubbo组件概述83
7.1.1远端方法调用流程和Dubbo组件83
7.1.2使用Nacos作为注册中心84
7.1.3Dubbo和HTTP调用方式的差别84
7.2Dubbo远端调用范例85
7.2.1编写服务提供者85
7.2.2编写服务调用者87
7.2.3定义超时时间和重试次数88
7.2.4观察远端调用的效果89
7.3注册中心集群和负载均衡89
7.3.1系统架构和项目说明90
7.3.2实现要点分析90
7.3.3观察负载均衡和高可用效果92
7.3.4设置Dubbo负载均衡方式92
7.4整合Sentinel引入安全防护93
7.4.1服务提供端的限流和熔断93
7.4.2服务提供端的服务降级96
7.4.3服务调用端的服务降级96
7.4.4Dubbo的安全措施分析98
7.5动手练习98
第8章Spring Cloud Steam整合消息中间件100
8.1消息中间件与Spring Cloud Stream框架100
8.1.1RocketMQ消息中间件100
8.1.2RabbitMQ消息中间件101
8.1.3Spring Cloud Steam封装消息中间件102
8.2Spring Cloud Stream整合RocketMQ102
8.2.1搭建RocketMQ环境102
8.2.2整合后的消息框架图103
8.2.3编写消息发送者项目104
8.2.4编写消息接收者项目106
8.2.5观察消息通信效果108
8.3Spring Cloud Stream整合RabbitMQ108
8.3.1搭建RabbitMQ环境108
8.3.2整合后的消息框架图109
8.3.3编写消息发送者项目109
8.3.4编写消息接收者项目110
8.3.5观察消息通信效果111
8.4动手练习111
第9章JPA+Redis+MyCat搭建微服务数据库服务层113
9.1用JPA组件操作数据库113
9.1.1JPA访问数据库的接口113
9.1.2创建MySQL数据库和数据表114
9.1.3通过JPA实现增删改查功能114
9.1.4观察JPA操作数据库的效果118
9.2微服务整合Redis缓存119
9.2.1Redis概述119
9.2.2搭建Redis运行环境120
9.2.3微服务整合Redis缓存121
9.2.4微服务整合MySQL与Redis124
9.3微服务整合MyCat分库组件129
9.3.1MyCat分库组件概述129
9.3.2搭建MyCat环境实现分库效果130
9.3.3微服务整合MyCat实现分库效果132
9.3.4微服务整合MyCat和Redis134
9.4动手练习135
第10章Spring Cloud Alibaba Seata实现分布式事务137
10.1分布式事务与Seata组件137
10.1.1分布式业务和分布式事务137
10.1.2Seata组件概述138
10.1.3搭建Seata服务端开发环境139
10.2用Seata实现分布式事务的范例141
10.2.1数据库和分布式事务描述141
10.2.2开发库存微服务项目142
10.2.3在订单项目里实现分布式事务147
10.2.4观察分布式事务效果151
10.3搭建高可用的Seata集群152
10.3.1Spring Cloud整合Seata集群的架构图152
10.3.2搭建Seata集群153
10.3.3微服务项目整合Seata集群156
10.4动手练习157
第11章微服务监控组件Skywalking158
11.1服务监控与Skywalking组件158
11.1.1微服务监控方面的需求158
11.1.2Skywalking组件介绍159
11.1.3搭建Skywalking组件运行环境159
11.2微服务项目整合Skywalking组件161
11.2.1介绍待监控的项目161
11.2.2下载并配置agent161
11.2.3监控项目运行情况162
11.3整合logback监控整条链路164
11.3.1服务链路框架164
11.3.2整合logback,定义监控日志格式165
11.3.3观察链路调用的日志,观察TID167
11.4观察Skywalking告警效果168
11.4.1配置Skywalking告警规则169
11.4.2观察告警效果170
11.4.3通过webhooks传递告警信息171
11.5动手练习172
第12章Docker部署Spring Boot项目和微服务组件174
12.1Docker与Spring Cloud微服务174
12.1.1Docker镜像、容器和虚拟化管理引擎174
12.1.2搭建Docker环境175
12.1.3用Docker管理微服务的方式175
12.2容器化管理Spring Boot项目176
12.2.1准备Spring Boot项目176
12.2.2打成jar包178
12.2.3用jar包制作镜像179
12.2.4以容器化的方式运行Spring Boot179
12.3容器化管理组件180
12.3.1容器化管理Nacos组件180
12.3.2容器化管理Sentinel181
12.3.3通过Docker容器部署MySQL182
12.3.4通过Docker容器部署Redis183
12.4动手练习184
第13章Docker部署Spring Cloud Alibaba微服务项目185
13.1员工管理微服务系统架构分析185
13.1.1微服务项目的表现形式与优势185
13.1.2基于Docker容器的微服务架构186
13.1.3业务功能点与数据表结构186
13.2开发员工管理微服务项目187
13.2.1开发员工管理模块187
13.2.2开发网关模块192
13.3容器化部署员工管理微服务194
13.3.1打包员工管理和网关模块194
13.3.2容器化部署并运行MySQL和Redis194
13.3.3容器化部署并运行Nacos和Sentinel195
13.3.4容器化部署员工管理模块195
13.3.5容器化部署网关模块196
13.3.6观察微服务容器化效果197
13.3.7引入限流和熔断措施198
13.4扩容与灰度发布199
13.4.1演示扩容效果199
13.4.2演示灰度发布流程202
13.5动手练习203
第14章Kubernetes整合Spring Boot205
14.1Kubernetes概述205
14.1.1Kubernetes的作用205
14.1.2准备Kubernetes环境206
14.1.3Kubernetes与Docker容器的关系206
14.1.4Kubernetes的Service207
14.1.5Kubernetes的Labels207
14.1.6Deployment的概念207
14.2用Kubernetes编排Spring Boot容器208
14.2.1基于Spring Boot的Docker容器208
14.2.2编写Service和Deployment配置文件208
14.2.3通过命令编排Spring Boot容器209
14.2.4观察Pod、Service和Deployment210
14.2.5查看Pod运行日志211
14.3Kubernetes常用实战技巧211
14.3.1删除Pod、Service和Deployment211
14.3.2伸缩节点212
14.3.3自动伸缩节点212
14.3.4创建Deployment并开放端口213
14.3.5进入Pod,执行命令214
14.4用Ingress暴露服务214
14.4.1Ingress简介215
14.4.2Ingress整合Service的做法215
14.5动手练习216
第15章用Kubernetes编排Spring Cloud Alibaba微服务217
15.1用Kubernetes编排组件217
15.1.1编排MySQL217
15.1.2编排Redis220
15.1.3StatefulSet和Deployment的差别221
15.1.4用StatefulSet编排Nacos222
15.1.5用StatefulSet编排Sentinel223
15.2用Kubernetes编排员工管理模块225
15.2.1微服务框架说明225
15.2.2员工管理项目的实现要点226
15.2.3编排员工管理微服务模块228
15.2.4观察Kubernetes编排微服务项目的效果229
15.2.5引入限流和熔断等效果230
15.2.6编排微服务项目的实践要点231
15.3动手练习232
第16章基于Jenkins的微服务CI/CD实战233
16.1Git工具与持续集成概述233
16.1.1持续集成概述233
16.1.2搭建Git代码仓库234
16.1.3安装Git组件234
16.1.4在IDEA里整合Git235
16.2用Git实践持续集成236
16.2.1待管理的项目代码综述236
16.2.2在Git仓库中初始化项目236
16.2.3在本地获取远端项目代码238
16.2.4创建开发分支239
16.2.5提交和推送代码240
16.2.6把开发代码合并到主分支241
16.3通过Jenkins实践持续交付242
16.3.1持续交付概述242
16.3.2持续交付需求概述243
16.3.3在本地搭建Jenkins环境243
16.3.4创建Jenkins任务244
16.3.5观察持续交付的实施结果246
16.4动手练习247
作者简介
曹 宇,副教授,从事高校教育工作17年,主要研究领域为计算机应用技术,主讲Java编程课程多年,主导开发了EPC企业专利信息协同平台、大宗商品信息管理系统等多个项目,公开发表论文数十篇。 王宇翔,副教授,从事高校教育工作20年,主要研究领域为计算机应用技术,主讲Java、微服务等课程,主持上海市教委 “电子商务技术双证融通改革项目” 等项目校内的实施管理,有多年Java教学经验。 胡书敏,硕士,有15年Java开发经验,资深Java架构师,有平安、花旗和IBM等大厂的工作经验,同时还有近8年Java技术面试官的经验。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0