前言
随着互联网的快速普及,云计算近年来得到蓬勃发展,企业的IT环境和架构体系也逐渐发生变革,其中最典型的就是由过去的单体应用架构发展为当今流行的微服务架构。微服务是一种架构风格,其优势是为软件应用开发带来很大的便利,让敏捷开发和复杂的企业应用快速持续交付成为可能。随着微服务架构的流行,很多企业纷纷使用微服务架构来搭建新的系统或者对历史系统进行重构,但是微服务架构的实施和落地会面临很大的挑战。虽然微服务架构的解决方案很多,但是对于如何真正落地微服务架构,目前还没有公认的技术标准和规范。幸运的是,业界已经有一些很有影响力的开源微服务解决方案,比如2015年年初,Spring团队推出的Spring Cloud,其目标是成为Java领域微服务架构落地的标准。Spring Cloud经过高速迭代和发展,至今已经成为Java领域落地微服务架构的推荐解决方案,为企业IT架构变革保驾护航。
Spring Cloud是一个优质的开源项目,它的稳健发展离不开众多开发人员的实践与反馈,开发人员通过一个社区化的平台去交流学习从而使Spring Cloud逐渐完善。Spring Cloud发展到2016年,得到国内越来越多的人的关注,但是相应的学习交流平台和材料比较分散,这阻碍了Spring Cloud在我国的普及和发展。因此Spring Cloud中国社区应运而生。Spring Cloud中国社区(http://springcloud.cn)是国内首个基于Spring Cloud微服务体系创建的非盈利技术社区,也是国内首个致力于Spring Cloud微服务架构开放交流的社区,是专为Spring Boot或Spring Cloud技术人员提供分享和交流服务的平台,目的是推动Spring Cloud在中国的普及和应用。
为什么写这本书?
Spring Cloud中国社区自2016年创建以来,在北京、上海、深圳、成都等地举办了多次技术沙龙,帮助数万名开发者快速学习Spring Cloud并用于生产。为更好地推动Spring Cloud在中国的发展,让更多开发者受益,社区针对Spring Cloud在国内的使用情况,结合国内上百家企业使用Spring Cloud落地微服务架构时遇到的问题和相应的解决方案,特推出本书。
你适合本书吗?
如果你没听说过微服务,也没有听说过Spring Cloud,或者你正在学习或尝试使用Spring Cloud去落地微服务架构,那么这本书会非常适合你。因为本书更加偏实战,书中所讲是一套可落地的解决方案。不管你是初学者、开发人员还是架构师,只要你想使用Spring Cloud去落地微服务架构,就可以阅读并学习本书。
本书是如何组织的?
本书共25章,按照“核心组件→进阶实战→解决方案”的结构将内容从逻辑上划分为三个部分,具体如下:
第1~10章为核心组件部分,主要介绍Spring Cloud的核心组件。首先从应用架构的发展历程讲起,介绍了微服务出现的背景,并对微服务架构的落地提出了相应的解决方案。然后分别详细介绍了Spring Cloud微服务体系中的核心常用组件,如Eureka、Feign、Ribbon、Hystrix、Zuul等。最后通过一个综合案例将前面介绍的组件连接起来,帮助大家融会贯通。
第11~18章为进阶实战部分,在核心组件的基础上,对Config、Consul、认证和鉴权、全链路监控以及Spring Cloud生态圈中第二代网关Spring Cloud Gateway进行详细阐述,循序渐进、案例驱动,帮助读者加深对组件的理解,更好地掌握相关内容并运用于生产实践中。
第19~25章为解决方案部分,主要从解决方案着手,内容包括Spring Cloud与gRPC的整合方式、版本控制与灰度发布、Spring Cloud容器化、Dubbo向Spring Cloud的迁移、分布式事务、领域驱动等生产级实用解决方案,为企业IT架构微服务化和变革保驾护航。
本书源码及勘误
本书案例源码使用Java 8版本编写,并使用Maven来构建管理。关于JDK的安装、Maven的安装,以及集成开发环境IDE的安装,在这里不再阐述,请读者自行安装。本书的源码托管在GitHub上,具体地址是http://github.com/springcloud/spring-cloud-code.git。可以使用Git客户端管理工具,比如通过SourceTree直接复制仓库到本地,然后通过IDE直接导入。代码模块根据章节内容进行编号,如ch2-1,其中ch是chapter的简称,ch2代表第2章,ch2-1代表第2章的第一个聚合案例工程。
由于能力有限,书中难免有不妥之处,如果在学习中遇到问题或者发现Bug,可以加QQ(2508203324)或者发邮件到Software_King@qq.com与我们交流沟通。
致谢
我们代表Spring Cloud中国社区编写本书,我们想把本书送给每一位Spring Cloud技术爱好者,帮助大家快速掌握Spring Cloud的实战技巧并快速落地实践,为企业创造价值。
感谢与我一起写作的小伙伴们,大家能聚在一起写一本书也是一种缘分,大家的思维碰撞和交流,使本书变得更加完善,更加接地气,更具实战性。
感谢机械工业出版社华章公司的杨福川编辑与他的团队,他们在写作和审校过程中给予的帮助和支持,让我们能顺利地写完本书,跟大家见面。
感谢为本书评审的专家们,他们专业的态度和建议,为本书提供了宝贵的建议,尤其感谢Spring Cloud中国社区核心成员何鹰、刘石明、任浩军、任聪、李云龙等对Spring Cloud中国社区开源项目的贡献和支持。
感谢一直支持Spring Cloud中国社区发展的读者和亲朋好友们,感恩一路有你们,因为有你们的支持和陪伴,社区才能更好地发展,本书才能顺利完成。
最后我想说的是,我们7位作者并不是Spring Cloud微服务落地方面的架构专家,我们只是Spring Cloud微服务架构的实践者。我们只是想重新定义什么是真正意义上的Spring Cloud实战,并把我们自己的实践经验分享给大家,帮助大家解决学习和工作上遇到的问题。三人行,必有我师焉,由于我们学识有限,难免会有不足之处,还请读者不吝赐教,一起交流学习,共同进步。
许进