你好,我是老齐,一名从业近 20 年的 IT 老兵,曾在京东、财政部、宜信、工商银行等机构从事架构设计与核心研发工作,有多个亿级流量的软件架构设计经验。也曾多次基于 Spring Cloud Alibaba 对微服务架构项目进行落地与升级改造,有着丰富的实践经验。
出来工作我不觉得谈钱庸俗,我们学习本身就是为了未来有更好的发展、更多的收入。现在已经走进 21 世纪第三个十年,在未来十年内以互联网、IoT 物联网为代表的分布式应用必将成为主流,大量软件企业对掌握微服务与高可用、高性能、高并发的架构人才也必定趋之若鹜,在这样的时代拐角下,我们又该如何选择呢?
image.png
某知名互联网企业招聘需求

为什么要掌握微服务架构?

架构圈有句名言“任何脱离场景的架构设计都是耍流氓”。没错,在分布式架构演进的几十年过程中出现了几十种架构模式,但目标只有一个,解决上一代架构遗留的各种问题。微服务架构也不例外,随着互联网、物联网的广泛应用,高并发应用程序在数量与体量上都在以指数级提高,传统的单体应用、SOA 等架构已经不足以支撑新环境对应用性能与可靠性的要求。
早些年我们在工行开发系统时,那时还在使用基于 ESB(企业服务总线)的 SOA 架构推进应用开发,ESB 作为分布式架构的核心枢纽良好地解决了异构系统间的消息传递问题,但好景不长,工商银行庞大的业务体量很快就让 ESB 不堪重负。再加上 ESB 本身属于重量级解决方案,扩展与维护都要依托于三方厂商进行,这也让架构的升级改造变得举步维艰。我们迫切需要更轻量级的解决方案,这也在我心里埋下了一颗种子,寻找更好的 SOA 替代方案。
直到 2015 年初,一次偶然机会,我从一次架构师线下交流中接触到“微服务架构”这个概念,它轻量级、标准化、业务驱动的特性引起了我的注意,这不正是我一直追寻的东西吗,于是开始潜心研究。但当时同为初学者,学习过程中也遇到了很多疑惑,比如:

  • 微服务的拆分粒度如何界定?
  • 传统的分布式架构数据一致性该如何保障?
  • 大型应用如何实施监控与链路跟踪?

好在因为工作之便,不断摸索与项目积累后,对其中大多数问题已经有了成熟的答案。
随着技术的不断迭代,我有幸成为国内最早期一批微服务架构的践行者,并推进了多个亿级流量的微服务项目成功落地。在众多微服务解决方案中,Spring Cloud Alibaba 技术生态成为后起之秀,成为众多国内新软件项目架构落地的首选技术。

为什么 Spring Cloud Alibaba 会迅速崛起

你现在可能有疑问,这几年微服务架构上 Spring Cloud 官方生态已经很成熟了,为什么我还要去学 Spring Cloud Alibaba 呢?
其实微服务看似是将整体应用打散为小服务这种很简单的处理,实则操作起来非常复杂,针对新的微服务架构额外产生的数据一致性问题、网络通信故障、限流与熔断机制、调用链路跟踪、集群监控、甚至用户登录与权限管理都是全新的挑战。如果这些问题全部都要软件公司自己解决显然是行不通的,好在这几年以 Spring Cloud 为基础的微服务技术生态日渐成熟,前面提到的大多数问题确实都已得到了有效解决。
image.png
Spring Cloud官方架构
但好景不长,在这几年以 Netfilix Eureka 为代表的 Spring Cloud 核心中间件纷纷停止更新,再加上许多组件设计老旧,在性能上已无法满足互联网大厂的要求,我们迫切需要一套符合中国特色的微服务架构解决方案。
Spring Cloud Alibaba 就是在这种背景下诞生的,Spring Cloud Alibaba 是国产的微服务开发一站式解决方案,与原有 Spring Cloud 兼容的同时对微服务生态进行扩展,通过添加少量的配置注解,便可实现更符合国情的微服务架构。
image.png
Spring Cloud Alibaba 架构
相比 Spring Cloud 官方标准,Spring Cloud Alibaba 提供了更完整的功能、更好用的 API,同时在中文的加持下让复杂的微服务架构变得不再高不可攀,目前 Spring Cloud Alibaba 已经是事实上的国内微服务技术标准,这也是我为什么极力推荐学习 Spring Cloud Alibaba 的重要原因。
这便是我开设这门课程的初衷,为了让学习过程更加顺利,我也做了以下这些准备。

课程设计

微服务架构本质也是一种架构的实现方案,它在原有基础上对分布式架构作出进一步的扩展与标准化,本门课我们将利用大量的实际案例、图形、表格等形式为你全方面勾勒出 Spring Cloud Alibaba 的轮廓,在讲解的同时我也会跟你分享自己的架构设计经验。
课程按照构建微服务从基础搭建到上层应用的顺序进行讲解,主要分为六个模块:

  • 模块一 微服务架构设计:主要介绍什么是微服务架构,以及微服务架构设计时一些常见问题。
  • 模块二 Nacos 服务治理:Nacos注册中心是整个微服务架构的核心,我将详细介绍 Nacos的安装、使用与集群搭建过程,同时结合图文介绍 Nacos 服务发现的底层原理。
  • 模块三 微服务通信:当服务间要产生彼此通信,在 Spring Cloud Alibaba 中支持 RPC 与 RESTful 两种方案,对应产品为 Dubbo 与OpenFeign ,本阶段我将给出这些组件的最佳实践以及原理分析。
  • 模块四 系统保护:Sentinel 是 Alibaba 提供的服务保护中间件,利用 Sentinel 可以有效预防分布式架构的系统性崩溃,本阶段我们将讲解 Sentinel 的限流、熔断、代码控制等最佳实践。
  • 模块五 高级特性:本阶段我们要讲解 Spring Cloud Alibaba 提供的众多高级特性。例如:配置中心、链路追踪、性能监控、分布式事务、消息队列等,这些技术我们都将从应用入门到原理分析逐一进行讲解。
  • 模块六 微服务架构最佳实践:在这个阶段我将拿出自己的私货,为你讲解微服务架构的综合运用与项目实践。在这里我们会接触到 Seata 分布式事务架构、多级缓存设计、老项目升级改造策略、微服务认证与授权体系、数据一致性解决方案以及基于容器化的 DevOps 运维架构。

有这六大模块,结合我们严谨认真的学习,相信你一定能对 Spring Cloud Alibaba 有一个全面的认识和了解,并将这些知识运用在工作项目中。
另一方面,熟悉我的同学都知道,我从第一天做课程就在强调“说人话、讲实战”。在课程中,几乎见不到晦涩难懂的概念,也没有烧脑的逻辑,更不喜欢带你手撕晦涩的源码,我只希望使用最直白的案例为你诠释工作中最有价值的知识。
在开发这门课程前,我在思考这门课程的意义。现在很多课程上来就强调 XX 算法、XX 理论、XX 模型。其实在我看来无论是程序框架还是架构设计,首先要用起来解决眼下遇到的问题,再去深入剖析原理,这才能做到学以致用。
因此 Spring Cloud Alibaba 这门课程从始至终将贯彻实用性,通过模拟真实场景带你逐步了解每一个组件的用途,逐渐构筑完整的微服务架构。同时,在课程中我一直强调“魔鬼隐藏在细节”,课程不会空泛的带你陈列“各种源码”,而是尽可能描述操作过程,让你跟着文档也能够搭建完整的微服务架构,在遇到关键细节与致命缺陷时我也会特别强调,让你少走些弯路。

学习门槛

虽然本课是讲微服务架构,在设计课程时我还是尽量把门槛放低,你只要是会用 Java,了解过 Spring Boot 框架,就不存在门槛可以放心“食用”。
在认真学习完这门课程后,你将对微服务架构有了完整的认识,能够独立搭建微服务架构,在关键问题上也会有成熟的思路帮你避开各种陷阱。

讲师寄语

我想说的是,虽然学习的过程是痛苦的,但是在这门课里,我将像你身边的一位朋友,用我这些年的经历、经验、实践与思考,帮你尽可能在轻松高效的状态下学好这门课,并且能够更快、更有效地运用到你的工作中。
希望在座的你,能坚持学习不断进步,日积月累后肯定会在收入上体现出你付出的努力与汗水。
最后,欢迎你在留言区分享自己的经历和经验,也希望你能在这里找到自己的良师益友。