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