SPRING CLOUD实战
- ISBN:9787302527220
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:219
- 出版时间:2019-07-01
- 条形码:9787302527220 ; 978-7-302-52722-0
本书特色
本书以Spring Cloud微服务架构为主线,依次通过案例讲述Spring Cloud的常用组件。看完本书后,大家会比较熟悉基于 Spring Cloud微服务架构的开发技术。 本书分为11章,内容包括Spring Boot微服务入门、Spring Data连接数据库、Eureka服务治理框架、Ribbon负载均衡组件、HyStrix服务容错组件、Feign服务调用框架、Zuul网关组件、用Spring Cloud Config搭建配置中心、消息机制与消息驱动框架、微服务健康检查与服务跟踪,*后给出一个SpringBoot开发Web的实战案例。 如果你想了解Spring Cloud微服务架构,并想以此进阶到架构师,那么本书是不错的选择。而且本书还附带相关代码和视频,视频里包含了所有案例的配置和运行方式,建议大家在观看视频、运行代码的基础上阅读本书的文字,这样能更高效地掌握Spring Cloud微服务开发技巧。
内容简介
本书以Spring Cloud微服务架构为主线,依次通过案例讲述Spring Cloud的常用组件。看完本书后,大家会比较熟悉基于 Spring Cloud微服务架构的开发技术。 本书分为11章,内容包括Spring Boot微服务入门、Spring Data连接数据库、Eureka服务治理框架、Ribbon负载均衡组件、HyStrix服务容错组件、Feign服务调用框架、Zuul网关组件、用Spring Cloud Config搭建配置中心、消息机制与消息驱动框架、微服务健康检查与服务跟踪,很后给出一个SpringBoot开发Web的实战案例。 如果你想了解Spring Cloud微服务架构,并想以此进阶到架构师,那么本书是不错的选择。而且本书还附带相关代码和视频,视频里包含了所有案例的配置和运行方式,建议大家在观看视频、运行代码的基础上阅读本书的文字,这样能更高效地掌握Spring Cloud微服务开发技巧。
目录
第1章 通过Spring Boot入门微服务 1
1.1 Spring Boot、Spring Cloud与微服务架构 1
1.1.1 通过和传统架构的对比了解微服务的优势 1
1.1.2 Spring Boot、Spring Cloud和微服务三者的关系 3
1.1.3 基于Netflix OSS的Spring Cloud的常用组件 4
1.2 通过Maven开发**个Spring Boot项目 5
1.2.1 Maven是什么,能带来什么帮助 5
1.2.2 通过Maven开发Spring Boot的HelloWorld程序 6
1.2.3 Controller类里处理Restful格式的请求 9
1.2.4 @SpringBootApplication注解等价于其他3个注解 11
1.2.5 通过配置文件实现热部署 12
1.3 通过Actuator监控Spring Boot运行情况 12
1.3.1 准备待监控的项目 13
1.3.2 通过/info查看本站点的自定义信息 14
1.3.3 通过/health查看本站点的健康信息 14
1.3.4 通过/metrics查看本站点的各项指标信息 14
1.3.5 actuator在项目里的实际用法 15
1.4 本章小结 15
第2章 用Spring Data框架连接数据库 16
2.1 Spring Data框架概述 16
2.2 Spring Data通过JPA连接MySQL 17
2.2.1 连接MySQL的案例分析 17
2.2.2 使用yml格式的配置文件 22
2.2.3 通过profile文件映射到不同的运行环境 23
2.3 通过JPA实现各种关联关系 24
2.3.1 一对一关联 24
2.3.2 一对多关联 28
2.3.3 多对多关联 30
2.4 本章小结 34
第3章 服务治理框架:Eureka 35
3.1 了解Eureka框架 35
3.1.1 Eureka能干什么 35
3.1.2 Eureka的框架图 36
3.2 构建基本的Eureka应用 36
3.2.1 搭建Eureka服务器 36
3.2.2 编写作为服务提供者的Eureka客户端 38
3.2.3 编写服务调用者的代码 40
3.2.4 通过服务调用者调用服务 42
3.3 实现高可用的Eureka集群 43
3.3.1 集群的示意图 43
3.3.2 编写相互注册的服务器端代码 43
3.3.3 服务提供者只需向其中一台服务器注册 44
3.3.4 修改服务调用者的代码 45
3.3.5 正常场景下的运行效果 45
3.3.6 一台服务器宕机后的运行效果 46
3.4 Eureka的常用配置信息 46
3.4.1 查看客户端和服务器端的配置信息 47
3.4.2 设置心跳检测的时间周期 47
3.4.3 设置自我保护模式 47
3.4.4 其他常用配置信息 48
3.5 本章小结 49
第4章 负载均衡组件:Ribbon 50
4.1 网络协议和负载均衡 50
4.1.1 基于4层和7层的负载均衡策略 50
4.1.2 硬件层和软件层的负载均衡方案比较 51
4.1.3 常见的软件负载均衡策略 51
4.1.4 Ribbon组件基本介绍 52
4.2 编写基本的负载均衡程序 52
4.2.1 编写服务器端的代码 53
4.2.2 编写客户端调用的代码 53
4.3 Ribbon中重要组件的用法 55
4.3.1 ILoadBalancer:负载均衡器接口 55
4.3.2 IRule:定义负载均衡规则的接口 56
4.3.3 IPing:判断服务器是否可用的接口 57
4.4 Ribbon整合Eureka组件 58
4.4.1 整体框架的说明 59
4.4.2 编写Eureka服务器 60
4.4.3 编写Eureka服务提供者 61
4.4.4 在Eureka服务调用者里引入Ribbon 62
4.4.5 重写IRule和IPing接口 64
4.4.6 实现双服务器多服务提供者的高可用效果 67
4.5 配置Ribbon的常用参数 69
4.5.1 参数的影响范围 69
4.5.2 归纳常用的参数 69
4.5.3 在类里设置Ribbon参数 70
4.6 本章小结 71
第5章 服务容错组件:HyStrix 72
5.1 在微服务系统里引入Hystrix的必要性 72
5.1.1 通过一些算术题了解系统发生错误的概率 72
5.1.2 用通俗方式总结Hystrix的保护措施 73
5.2 通过案例了解Hystrix的各种使用方式 74
5.2.1 准备服务提供者 74
5.2.2 以同步方式调用正常工作的服务 75
5.2.3 以异步方式调用服务 77
5.2.4 调用不可用服务会启动保护机制 78
5.2.5 调用Hystrix时引入缓存 80
5.2.6 归纳Hystrix的基本开发方式 82
5.3 通过Hystrix实践各种容错保护机制 82
5.3.1 强制开启或关闭断路器 82
5.3.2 根据流量情况按命令组开启断路器 83
5.3.3 降级服务后的自动恢复尝试措施 85
5.3.4 线程级别的隔离机制 87
5.3.5 信号量级别的隔离机制 89
5.3.6 通过合并批量处理URL请求 90
5.4 Hystrix与Eureka的整合 94
5.4.1 准备Eureka服务器项目 94
5.4.2 服务提供者的代码结构 95
5.4.3 在服务提供者项目里引入断路器机制 96
5.4.4 在服务调用者项目里引入合并请求机制 97
5.5 本章小结 100
第6章 服务调用框架:Feign 101
6.1 通过案例快速上手Feign 101
6.1.1 编写服务注册项目和服务提供项目 101
6.1.2 通过Feign调用服务 102
6.1.3 通过比较其他调用方式来了解Feign的封装性 104
6.2 Feign的常见使用方式 105
6.2.1 通过继承改善项目架构 105
6.2.2 通过注解输出调用日志 107
6.2.3 压缩请求和返回以提升访问效率 108
6.3 通过Feign使用Ribbon负载均衡特性 109
6.3.1 准备Eureka服务器以及多个服务提供者 109
6.3.2 通过Feign以Ribbon负载均衡的方式调用服务 110
6.4 Feign整合Hystrix 111
6.5 本章小结 113
第7章 微服务架构的网关组件:Zuul 114
7.1 通过案例入门Zuul组件的用法 114
7.1.1 搭建简单的基于Zuul组件的网关 114
7.1.2 通过运行结果体会Zuul转发请求的效果 116
7.2 Zuul请求过滤器 116
7.2.1 http请求生命周期和Zuul过滤器 116
7.2.2 过滤器的常规用法 117
7.2.3 指定过滤器的优先级 119
7.2.4 通过error过滤器处理路由时的异常情况 121
7.2.5 动态增加过滤器 123
7.3 通过Zuul实现路由功能的实践方案 126
7.3.1 简单路由的做法 126
7.3.2 通过forward跳转到本地页面 127
7.3.3 路由到具体的服务 128
7.3.4 定义映射url请求的规则 129
7.3.5 配置路由的例外规则 130
7.4 Zuul天然整合了Ribbon和Hystrix 131
7.4.1 案例的准备工作 131
7.4.2 Zuul组件包含Ribbon和Hystrix模块的依赖 132
7.4.3 以Ribbon负载均衡的方式实现路由 132
7.4.4 在Zuul网关中引入Hystrix 134
7.5 本章小结 136
第8章 用Spring Cloud Config搭建配置中心 137
8.1 通过Spring Cloud Config搭建基于Git的配置中心 137
8.1.1 Spring Cloud Config中服务器和客户端的体系结构 137
8.1.2 在Git上准备配置文件 138
8.1.3 在服务器中连接Git仓库 139
8.1.4 在客户端读取配置文件 141
8.2 搭建基于SVN的配置中心 142
8.2.1 准备SVN环境 143
8.2.2 编写基于SVN的配置服务器代码 144
8.2.3 在应用中读取基于SVN客户端的配置 145
8.3 服务器和客户端的其他常见用法 146
8.3.1 总结配置客户端和服务器的作用 146
8.3.2 在服务端验证配置仓库访问权限 147
8.3.3 在服务端配置身份验证信息 147
8.3.4 访问配置仓库子目录中的配置 148
8.3.5 在本地备份远端仓库中的配置 149
8.3.6 用本地属性覆盖远端属性 150
8.3.7 failFast属性 151
8.3.8 与failFast配套的重试相关参数 151
8.4 Spring Cloud Config与Eureka的整合 153
8.4.1 本案例的体系结构和项目说明 153
8.4.2 准备数据库环境和Git配置信息 154
8.4.3 配置服务器与Eureka服务器合二为一 154
8.4.4 配置客户端与Eureka客户端合二为一 156
8.4.5 查看运行效果 158
8.5 本章小结 158
第9章 消息机制与消息驱动框架 159
9.1 在微服务中实现模块间的通信 159
9.1.1 消息代理和消息中间件 159
9.1.2 Spring Cloud体系中的消息总线 160
9.1.3 Spring Cloud Stream:消息驱动框架 160
9.2 消息中间件的案例 161
9.2.1 RabbitMQ的安装步骤 161
9.2.2 通过RabbitMQ发送和接收消息的案例 162
9.2.3 Kafka的安装步骤 165
9.2.4 通过Kafka发送和接收消息的案例 166
9.3 通过消息总线封装消息中间件 168
9.3.1 基于RabbitMQ的消息总线案例 168
9.3.2 基于Kafka的消息总线案例 169
9.4 Spring Cloud Stream组件的常见用法 170
9.4.1 实现基于RabbitMQ的案例 170
9.4.2 通过更换绑定器变更消息中间件 173
9.4.3 消费组案例演示 174
9.4.4 消息分区实例演示 175
9.5 本章小结 177
第10章 微服务健康检查与服务跟踪 178
10.1 通过Spring Boot Admin监控微服务 178
10.1.1 监控单个服务 178
10.1.2 与Eureka的整合 181
10.1.3 设置报警邮件 184
10.2 通过Sleuth组件跟踪服务调用链路 185
10.2.1 基于Sleuth案例的总体说明 185
10.2.2 关于服务提供者案例的说明 186
10.2.3 关于服务调用者案例的说明 186
10.2.4 通过运行效果了解Sleuth组件 187
10.2.5 通过Sleuth组件分析问题的一般方法 188
10.3 整合Zipkin查询和分析日志 188
10.3.1 搭建Zipkin服务器 188
10.3.2 从Zipkin图表上查看Sleuth发来的日志 189
10.3.3 在MySQL中保存Zipkin数据 191
10.3.4 如何根据Zipkin结果观察调用链路 193
10.4 本章小结 194
第11章 用Spring Boot开发Web案例 195
11.1 在Spring Boot中整合JSP及MVC 195
11.1.1 以Maven的形式创建Web项目 195
11.1.2 在Spring Boot中引入JSP(基于Maven) 197
11.1.3 在Spring Boot中引入MVC架构和数据库服务 198
11.2 Spring Security与Spring Boot的整合 201
11.2.1 身份验证的简单做法 201
11.2.2 进行动态身份验证的做法 204
11.2.3 Spring Boot Security身份验证的开发要点 205
11.2.4 根据用户的角色分配不同的资源 205
11.3 在Web项目中整合Eureka、Ribbon等组件 210
11.3.1 本案例的框架与包含的项目说明 210
11.3.2 开发Eureka服务器模块 211
11.3.3 开发前端Web项目 211
11.3.4 开发提供用户验证的项目 215
11.3.5 开发提供账户查询功能的项目(含负载均衡) 216
11.4 本章小结 219
作者简介
胡书敏,在外企和互联网公司有五年资深架构师工作经验,博客园知名博主,出版过多本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