Spring Cloud实战
上QQ阅读APP看书,第一时间看更新

前言

千军易得,一将难求。在软件开发行业,与高级程序员相比,架构师能拿到更高的工资,为什么呢?因为架构师更需要解决“负载均衡”“服务治理”与“限流降低”等软件架构领域的问题。如果架构方面的问题没处理好,那么模块间的耦合度可能会非常高,从而使项目在经过几个迭代版本后很难维护。这还算小事,如果系统架构失当,部署到生产环境后,就非常有可能无法适应高并发量的访问需求。

相比于高级程序员,升级到架构师的难度会比较大,这是因为虽然很多人知道架构师该掌握的技能,但却不知道该通过哪些手段来提升实践技能。比如很多人知道负载均衡的概念和相关算法,但掌握架构级别使用负载均衡组件的人并不多,而掌握负载均衡组件与其他架构组件(比如网关组件)相整合从而发挥更大效用的人就更少了。

我们知道,在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月