Spring Cloud实战
全新正版 急速发货
¥
42.9
7.3折
¥
59
全新
库存3件
作者胡书敏
出版社清华大学出版社
ISBN9787302527220
出版时间2019-06
装帧平装
开本16开
定价59元
货号27882024
上书时间2024-12-20
商品详情
- 品相描述:全新
- 商品描述
-
前言
前 言
千军易得,一将难求。在软件开发行业,与高级程序员相比,架构师能拿到更高的工资,为什么呢?因为架构师更需要解决“负载均衡”“服务治理”与“限流降低”等软件架构领域的问题。如果架构方面的问题没处理好,那么模块间的耦合度可能会非常高,从而使项目在经过几个迭代版本后很难维护。这还算小事,如果系统架构失当,部署到生产环境后,就非常有可能无法适应高并发量的访问需求。
相比于高级程序员,升级到架构师的难度会比较大,这是因为虽然很多人知道架构师该掌握的技能,但却不知道该通过哪些手段来提升实践技能。比如很多人知道负载均衡的概念和相关算法,但掌握架构级别使用负载均衡组件的人并不多,而掌握负载均衡组件与其他架构组件(比如网关组件)相整合从而发挥更大效用的人就更少了。
我们知道,在Spring Cloud的诸多组件里,包含着能实现各种架构需求的组件,比如通过Eureka组件能实现服务治理,通过Hystrix能实现容错保护,通过Spring Cloud Stream能整合消息中间件,所以从Spring Cloud入手了解架构方面的技能是一个比较有操作性的选择。
本书可以看成为Spring Cloud微服务组件架构案例实战指南,站在架构设计的角度,从“服务治理”“负载均衡”“容错保护”“网关”和“消息通信”等角度向大家逐一介绍Spring Cloud中的常用组件。
在本书每个介绍“架构级”组件的章节中,大家不会看到大段引经据典的文字,而是能看到有实践意义的案例。而且,每个案例均配有视频讲解,大家能很快在自己的机器上调试通过(免去了很多自己试错的时间),通过运行这些案例,读者能快速地掌握架构级别相关组件的作用和一般用法。
我们知道,在系统架构体系中,往往会把多个组件整合到一起配套使用,所以本书给出的案例更注重各类“整合”,比如网关(Zuul)与负载均衡组件(Ribbon)整合,或服务治理(Eureka)和日志组件(Sleuth)整合,当然在整合的时候不能乱点鸳鸯谱,而是要契合企业的实际需求和常规用法。而且,在讲述架构级Spring Cloud组件的时候,我们不仅仅停留在案例代码级别,大家更能从文字性说明的字里行间感受到架构师思考问题的方式以及组件层面解决实际问题的架构方案。
不少人想学Spring Cloud微服务架构技术,由于牵涉到“架构”,因此不怎么好学。在本书中,针对Spring Cloud里的每个常用组件,都将给出基于案例的讲解,所以通过本书学习Spring Cloud,大家不会觉得特别难。
读者在读完每个章节后,不仅可以了解相关常用组件的用法,还可以掌握包含在具体组件背后的架构思想(比如负载均衡或高可用),与之相对应,在读完本书后,读者不仅能感受到相关微服务组件整合后给项目带来的好处,还能自己动手实践基于多个组件的微服务架构。总之一句话:本书能从Spring Cloud微服务架构体系入手,帮助读者高效地升级到架构师。
除了在掌握Spring Cloud技术方面会对大家有所帮助,在升级到架构师的道路上,本书也是一个比较好的助手。一方面,本书作者有实际的架构师经验(尤其在Spring Cloud方面),知道Spring Cloud里哪些知识该学,哪些可以一笔带过;另一方面,本书作者也是资深培训老师和资深计算机图书的作家,知道如何把Spring Cloud(乃至架构)方面的知识清晰地传授给读者或学员的方法。
大家在阅读每个章节的时候,会看到“精悍而易懂”的案例,在案例的上下文中,更能感受到作者在用心与大家交流。正因如此,读者能高效地读完并理解每个章节的内容,与之对应的是,在读完本书后,能掌握Spring Cloud乃至架构层面的开发技能,再进一步,甚至能承担部分“初级架构师”的工作。
本书内容
第1章介绍以Maven方式开发Spring Boot项目的一般方式,以及Spring Cloud全家桶里各个常用组件的作用。
第2章讲解Spring Boot通过Spring Data里的JPA组件与MySQL数据库交互的方式,其中不仅包括查询获取数据的一般方法,还包括通过JPA实现一对一、一对多和多对多关联的方法。
第3~5章分别讲述Spring Cloud的服务治理组件Eureka、负载均衡组件Ribbon以及服务容错处理组件Hystrix。在实际项目中,这3个组件一般会配套使用。在本书中,大家能看到整合使用这3个组件的技巧。
第6章讲述客户端调用组件Feign,这个组件能封装客户端的调用细节,从而能进一步解耦合服务调用和业务逻辑。
第7章讲述Zuul网关,包括该组件配置路由的做法及其过滤器的使用技巧。
第8~10章分别讲述Spring Cloud Config配置管理组件、Spring Cloud Bus和Spring Cloud Stream消息管理组件和基于Sleuth的微服务跟踪组件,通过它们,我们能进一步完善微服务系统的架构。
在后一章里,我们给出基于Spring Cloud的若干案例,其中包括在Spring Boot里开发Web程序的方式、在Spring Boot里实现身份验证和权限管理的技巧,并在本章后整合诸多组件,给出一个相对完整的案例。
本书下载资源:https://www.cnblogs.com/JavaArchitect/p/10721237.html。也可以扫描下面的二维码下载。
后,感谢大家耐心读完“前言”,如果大家再进一步用心看完本书的所有内容,相信收获会超出你的想象。本人邮箱地址为hsm_computer@163.com,博客园的技术博客地址为https://www.cnblogs.com/JavaArchitect/,如果对本书有一些建议,或大家在学习中遇到问题,欢迎一起讨论。
编者
2019年3月
导语摘要
本书以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微服务开发技巧。
作者简介
胡书敏,在外企和互联网公司有五年资深架构师工作经验,博客园知名博主,出版过多本Java方面的书籍,搭建过多个支付和数据分析方面的微服务架构。
目录
目 录
第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
— 没有更多了 —
以下为对购买帮助不大的评价