竟拿到阿里 45K 高薪 offer!只因他刷了这份阿里微服务天花板手册
![竟拿到阿里45K高薪offer!只因他刷了这份阿里微服务天花板手册](https://static001.geekbang.org/infoq/1d/1dcb1e2b4a1345a310c26f0c6ecb7ff9.jpeg)
微服务起源
微服务的流行,Martin 功不可没,这老头也是个奇人,特别擅长抽象归纳和制造概念,我觉的这就是最牛逼的 markting 啊,感觉这也是目前国人欠缺的能力。
Martin Fowler 是国际著名的 OO 专家,敏捷开发方法的创始人之一,现为 ThoughtWorks 公司的首席科学家.福勒(Martin Fowler),在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都是世界顶级的专家,现为 Thought Works 公司的首席科学家。Thought Works 是一家从事企业应用开发和集成的公司。早在 20 世纪 80 年代,Fowler 就是使用对象技术构建多层企业应用的倡导者,他著有几本经典书籍: 《企业应用架构模式》、《UML 精粹》和《重构》等。—— 百度百科
微服务的进化历程
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布式架构--->SOA 架构--->微服务架构,当然还有悄然兴起的 Service Mesh(服务网格化)。接下来我们就来了解一下每种系统架构是什么样子的, 以及各自有什么优缺点。——【传送门免费货区】——
![](https://static001.geekbang.org/infoq/e8/e89b4b37389cb21102684819240d7e3f.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/24/242ff9dee6af37948bbdc694f7224c08.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第一章 微服务介绍
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。
![](https://static001.geekbang.org/infoq/85/856fa7d3e6de7b27aae64029e3d62531.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/35/35e877f2605f29ba785460670ad4b437.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第二章 微服务环境搭建
![](https://static001.geekbang.org/infoq/5b/5b48854686cea4a528e99247ac7a0ca0.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第三章 Nacos Discovery--服务治理
什么是服务治理
服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。
服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。
服务发现:服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务的实现例的访问
![](https://static001.geekbang.org/infoq/97/97090cc9b0a500e85ced6fe7a46d0a9e.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/2b/2bc2289ae12c0a5cd4f4bf73a17b21f6.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第五章 Gateway--服务网关
大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。
![](https://static001.geekbang.org/infoq/25/2517f3bdc2a0253a976748e4a2c6be1a.png)
这样的架构,会存在着诸多的问题:
客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性
认证复杂,每个服务都需要独立认证。
存在跨域请求,在一定场景下处理相对复杂。
![](https://static001.geekbang.org/infoq/83/8301dc73b48eaa3b2b8dafb4f6992f8c.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第六章 Sleuth--链路追踪
在大型系统的微服务化构建中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题:
如何快速发现问题?
如何判断故障影响范围?
如何梳理服务依赖以及依赖的合理性?
如何分析链路性能问题以及实时容量规划?
![](https://static001.geekbang.org/infoq/0b/0b832d75453482c834b73619ff6458bf.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第七章 Rocketmq--消息驱动
MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。
![](https://static001.geekbang.org/infoq/20/204976efe9607a937bb498f7f91313cd.png)
![](https://static001.geekbang.org/infoq/24/2424cff53072629c284908fdd8cf191c.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第八章 SMS--短信服务
短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。
产品优势:覆盖全面、高并发处理、消息堆积处理、开发管理简单、智能监控调度
产品功能:短信通知、短信验证码、推广短信、异步通知、数据统计
应用场景:短信验证码、系统信息推送、推广短信等
![](https://static001.geekbang.org/infoq/1e/1e1dc6cd31d392f682638d7ec726053d.png)
![](https://static001.geekbang.org/infoq/71/710d98e0cac147456d7aa819279f0467.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第九章 Nacos Confifig--服务配置
首先我们来看一下,微服务架构下关于配置文件的一些问题:
1. 配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变得越来越多,而且分散在各个微服务中,不好统一配置和管理。
2. 配置文件无法区分环境。微服务项目可能会有多个环境,例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置理论上都是不同的,一旦需要修改,就需要我们去各个微服务下手动维护,这比较困难。
3. 配置文件无法实时更新。我们修改了配置文件之后,必须重新启动微服务才能使配置生效,这对一个正在运行的项目来说是非常不友好的。基于上面这些问题,我们就需要配置中心的加入来解决这些问题。
配置中心的思路是:
首先把项目中各种配置全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。
当各个服务需要获取配置的时候,就来配置中心的接口拉取自己的配置。
当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
当加入了服务配置中心之后,我们的系统架构图会变成下面这样
![](https://static001.geekbang.org/infoq/2b/2b0b5ce06517f3e1f9d54ab7a9076ae2.png)
![](https://static001.geekbang.org/infoq/8c/8c49ce1991ac24064db3d87061e046df.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
第十章 Seata--分布式事务
事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销。简单地说,事务提供一种“要么什么都不做,要么做全套”机制。
![](https://static001.geekbang.org/infoq/c6/c690a28c14720896c5c1d2227fcb29de.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/ce/ce6bca2d67906054d3e2a5149ccf7d4b.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
——【传送门免费货区】——
评论