微服务架构的学习路径

随着越来越完善的微服务架构技术栈的发布,以及越来越多的微服务架构项目实际落地和上线,使用 Java 技术栈的企业可能都在尝试或已经落地了各自的微服务架构项目,通过招聘网站的信息和每次面试的反馈,也能够看出微服务架构及相关技术栈的重要性。

image 2025 04 14 14 33 17 888
Figure 1. 图1-1 招聘信息
image 2025 04 14 14 33 45 612
Figure 2. 图1-2 高级Java开发人员的简历

图1-1 是 Java 架构师/技术专家的招聘信息。

图1-2 是笔者曾经看到的高级 Java 开发人员的简历信息,这位求职者的期望薪资是 25000~35000 元。

这里的关键字就是高级职位和高薪,能够得到一份职位更高和薪资更丰厚的工作是非常好的,毕竟学习就是为了未来有更好的发展和更优的薪酬。

相信各位从事 Java 开发的读者也能够清晰地感受到,微服务架构技术已经渐逐成为 Java 开发者必须掌握的一个进阶知识点。

上手微服务架构项目会遇到哪些问题

作为技术人员,对微服务架构都会有所耳闻,也能够看出它是未来的一种流行架构,进而也希望自己能够掌握微服务架构技术体系,甚至动手实践完成微服务架构项目的开与维护,掌握微服务架构技术这项技能。不过,掌握该技能会遇到如下几个问题。

  1. 微服务架构技术的体系复杂,从何学起?学习哪些知识点?有没有简捷且有效的学习路径?

  2. 微服务架构中的组件和中间件很多,如何选择一套合适且可落地的方案?

  3. 在搭建与开发微服务架构项目时,会遇到哪些问题?这些问题又该如何解决?

  4. 想要自己动手开发一个大型微服务架构项目,有没有适合的源码?有没有可以借鉴的经验?

针对这些问题,笔者结合自己的开发经验和一个可操作的大型微服务架构实战项目,从复杂的微服务架构体系中梳理一个明确且有效的学习路径,使读者可以成体系地学习微服务架构。

梳理微服务架构

下面介绍微服务架构的组成部分。

图 1-3 是 Spring 官方网站中对微服务架构进行概括的一张简图。

image 2025 04 14 14 35 25 306
Figure 3. 图1-3 Spring 官网中的微服务架构简图

请求的入口包括移动端、PC 端浏览器和其他的智能设备,这些请求的承接点就是微服务架构中的网关模块,即 Gateway。网关收到这些请求后分发到各个微服务架构实例中。而网关和微服务架构实例之间则是配置中心和服务的注册中心,用于服务发现和配置信息的读取。简图右上角还有一个链路追踪的微服务架构组件。

以上是 Spring 官方对微服务架构的概括,甚至可以说是一个非常简单的概括。企业中真实开发的微服务架构项目比简图中的内容要丰富得多。

以本书最终的微服务架构实战项目为例,该项目的架构图如图 1-4 所示。

image 2025 04 14 14 37 40 920
Figure 4. 图1-4 本书实战项目的架构图

图1-4 中的内容就是本书微服务架构实战项目的组成部分,主要包括网关集群、微服务实例和众多的微服务组件。

拆解微服务架构搭建的步骤

微服务架构实战的第二步:我们要做什么?

图 1-4 是一张完整的架构图,不过用户交互层和网络接入层并不是本书微服务架构实战所进行的重点,由后端开发人员做的主要是图 1-5 中的这些内容。

image 2025 04 14 14 48 30 637
Figure 5. 图1-5 后端开发人员主要负责的内容

开发人员需要完成微服务组件的搭建和微服务实例的代码开发,图中的网关模块也算是微服务组件的一部分。

微服务架构项目虽然复杂,但也不是完全无法实现的,只要计划合理、选用的解决方案有效就能够完成这项任务。行业内普遍的一个解决方案就是 “拆”。化繁为简,将大项目拆解成若干个小项目、大系统拆分出若干个功能模块、大功能拆解成若干个小功能,之后对各个环节或各个功能进行具体的实现和完善,这个完整的项目也就逐渐展现在开发人员面前。

如图 1-6 所示,开发人员需要完成的内容就是微服务组件的搭建和完善,再加上微服务实例的代码开发。当然,这两个部分的内容也是本书实战项目要完成的内容。

image 2025 04 14 14 49 06 007
Figure 6. 图1-6 微服务组件+微服务实例开发

搭建并整合各个微服务组件

明确目标之后,接下来是具体的实操部分,即选择适合的中间件和技术栈,并进行实际的搭建和编码开发。

首先是微服务组件的技术选型,如图 1-7 所示。

image 2025 04 14 14 49 55 603
Figure 7. 图1-7 微服务组件的技术选型

本书将对 NacosSpring Cloud GatewaySentinelSeata 等微服务架构组件进行介绍、实际的搭建和整合,完成微服务架构实战里中间件搭建和整合的工作。除基础的整合外,还会对重点技术栈的源码进行详细的剖析,让读者能够知其然也知其所以然。

从0到1开发大型的微服务架构项目

搭建并整合完各微服务架构组件后,就要进行各个服务的编码和功能实现。笔者将从0到1开发大型的微服务架构项目,把开发中的每个步骤、每个步骤中的源码分享给读者。

微服务实例开发时的技术栈选择如图 1-8 所示。

image 2025 04 14 14 50 51 137
Figure 8. 图1-8 微服务实例开发时的技术栈选择

这些技术栈都是 Java 开发人员日常开发时常见的开发框架,读者可能并不陌生。这个步骤就是本书的重头戏,在微服务组件搭建完成后,一步一步把这个大型的微服务实战项目开发出来。

以上就是笔者为开发人员整理的微服务架构项目的学习路径和实战步骤:梳理微服务架构、拆解微服务架构搭建的步骤、搭建并整合各个微服务组件、开发一个大型的微服务架构项目,如图 1-9 所示。

image 2025 04 14 14 51 26 178
Figure 9. 图1-9 微服务架构项目的学习路径和实战步骤

本书将沿着这个路径进行章节规划和内容讲解。当然,学习微服务架构项目开发只懂得组件的搭建和整合是远远不够的,更重要的是读者能够把这些知识做到 “为我所用”,完全地纳入自己的知识体系中。本书的后半部分将结合项目实战,对一个大型的商城项目进行拆解和微服务化,并从 0 到 1 落地一个功能完整、流程完善的微服务架构项目。本书讲解时由浅入深,逐一击破微服务架构项目中的难点,使读者能够实际地体验微服务架构项目的搭建和开发。在实战中,让各位读者深入理解微服务架构技术,掌握微服务架构项目开发的核心知识点。通过本书的讲解和提供的完整代码,读者可以掌握 Spring Cloud Alibaba 技术栈中的组件、知识点,并且能够应用到自己所开发的项目中。