大家好,我是十三。
非常感谢你们阅读本书,在技术道路上,我们从此不再独行。
2017年2月24日,笔者正式开启技术写作之路,同时也开始在GitHub网站上做开源项目,由于一直坚持更新文章和开源项目,慢慢地被越来越多的人所熟悉。2018年6月7日,电子工业出版社的陈林编辑通过邮件联系笔者并邀请笔者出书。从此,笔者与电子工业出版社结缘。2018年笔者也被不同的平台邀请制作付费专栏课程。自2018年9月起,笔者陆陆续续在CSDN图文课、实验楼、蓝桥云课、掘金小册、极客时间等平台上线了多个付费专栏和课程。2020年,笔者与电子工业出版社的陈林编辑联系并沟通了写作事宜,之后签订了约稿合同,第一本书在2021年正式出版。
笔者写作的初衷是希望把自己对技术的理解及实战项目开发的经验分享给读者。过去几年的经历可以整理成一张图(如图1所示),免费文章→付费专栏→付费视频→实体图书,从0到1,从无到有,都是一步一步走过来的。这些也是笔者的写作背景。
同时,笔者也会将付费专栏和图书中用到的实战项目开源到GitHub和Gitee两个开源代码平台上,本书中基于Spring Cloud Alibaba的微服务实战项目newbee-mall-cloud是笔者开发的一个开源项目。
图1 笔者的写作经历
随着越来越完善的微服务技术栈的发布,以及越来越多的微服务项目实际的落地和上线,使用Java技术栈的企业应该都在尝试或已经让各自的微服务项目落地了。通过招聘网站的信息和每次面试的反馈,Java开发人员也能够清晰地认识到: 微服务技术已经逐渐成为Java开发人员必须掌握的一个进阶知识点了。
作为技术人员,各位读者一定对微服务架构有所耳闻,也能够看出它会是未来的一种流行架构,进而也非常希望自己能够掌握微服务技术体系,甚至动手实践完成微服务项目的开发与维护,掌握微服务技术这项非常宝贵的技能。不过,在掌握这项技能时,可能会遇到如下几个问题:
· 微服务技术的体系复杂,从何学起?学习哪些知识点?有没有简洁而有效的学习路径?
· 微服务架构中的组件和中间件很多,如何选择一套合适且可落地的方案?
· 在进行微服务架构的项目搭建与开发时,会遇到哪些问题?这些问题又该如何解决?
· 想要自己动手开发一个大型微服务项目,有没有适合的源码?有没有可以借鉴的经验?
针对这些问题,笔者结合自己的开发经验和一个可操作的大型微服务实战项目,从复杂的微服务体系中梳理一条明确而有效的学习路径,让读者可以成体系地学习微服务架构,本书的知识点规划和学习路径如图2所示。
以上就是笔者为各位开发人员整理的微服务架构项目的学习路径和实战步骤:梳理微服务架构、拆解微服务架构搭建的步骤、搭建并整合各个微服务组件、开发一个大型的微服务项目。
图2 本书的知识点规划和学习路径
笔者先对概念性的知识进行介绍,让读者了解微服务的“前世今生”,然后介绍微服务的技术选型,包括技术栈的介绍与对比,并确定实战项目所选择的微服务技术组件,接着对这些技术组件进行讲解,包括组件的作用、搭建和优化。书中对Nacos、Spring Cloud Gateway、Sentinel、Seata等组件进行搭建和实际的整合,完成微服务架构实战里中间件搭建和整合的工作。除基本的整合外,也对重点技术栈的源码进行了详细的剖析,让读者能够知其然也知其所以然。搭建并整合完各个中间件之后,就是各个服务的编码和功能实现,在本套书的下册中会对一个大型的商城项目进行拆解和微服务化,并从零到一落地一个功能完整、流程完善的微服务项目。本书内容由浅入深,帮助读者深入理解微服务技术,掌握微服务项目开发的核心知识点,并且能够应用到自己所开发的项目中。
本书的代码基于Spring Boot 2.6.3版本和Spring Cloud Alibaba 2021.0.1.0版本。笔者通过14章的内容由浅入深、逐一击破微服务架构项目中的难点,让各位读者能够实际地体验微服务架构项目的搭建和开发。另外,本书从书稿整理完成至正式出版耗时近一年时间,在这段时间里,Spring Boot和Spring Cloud Alibaba及相关技术栈也有一些版本升级,如Spring Boot 3.x、Spring Cloud Alibaba 2022.x。对于这些情况,笔者会在本书实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者学习更新的知识。
读者学习本书的内容,会有以下收获。
· Spring Cloud Alibaba微服务技术组件的整合与使用。
· 服务治理之服务注册与服务发现。
· 服务间的通信方式。
· 负载均衡器的原理与实践。
· 微服务网关搭建与使用。
· 分布式事务的处理。
· 服务容错之限流及熔断。
· 微服务间的链路追踪。
· ELK日志中心的搭建与使用。
· 针对各个知识点的实战源码和一套可执行的微服务项目源码。
· 从事Java Web开发的技术人员。
· 希望进阶高级开发的后端开发人员。
· 对微服务架构感兴趣、想要了解Spring Cloud热门组件的开发人员。
· 希望将微服务架构及相关技术实际运用到项目中的开发人员。
· 想要独立完成一个微服务架构项目的开发人员。
本书每个实战章节都有对应的源码并提供下载,读者可以在本书封底扫码获取。
最终的实战项目是笔者的开源项目newbee-mall-cloud,源码在开源网站GitHub和Gitee上都能搜索并下载更新的源码。
· 网址1
· 网址2
感谢电子工业出版社的陈林老师、石悦老师、美术编辑李玲和其他老师,本书能够顺利出版离不开你们的奉献,感谢你们辛苦、严谨的工作。
感谢newbee-mall系列开源仓库的各位用户及笔者专栏文章的所有读者。他们提供了非常多的修改和优化意见,使这个微服务实战项目变得更加完善,也为笔者提供了持续写作的动力。
感谢掘金社区的运营负责人优弧和运营人员Captain。本书部分内容是基于掘金小册《Spring Cloud Alibaba大型微服务项目实战》中的章节来扩展的,本书能顺利出版也得到了掘金社区的大力支持。
特别感谢家人,没有他们的默默付出和大力的支持,笔者不可能有如此多的时间和精力专注于本书的写作。
感谢每一位没有提及名字,但是曾经帮助过笔者的贵人。
十三
2023年9月1日 于杭州