微服务最佳实践:MSE 微服务引擎

简介: 微办事引擎 MSE(Microservice Engine)是一个面向业界主流开源微办事框架 Spring Cloud 和 Dubbo 的一站式微办事平台。其由四个重要部分构成:微办事治理中间、微办事注册中间、微办事设备中间、微办事网关。

MSE 是什么

微办事引擎 MSE(Microservice Engine)是一个面向业界主流开源微办事框架 Spring Cloud 和 Dubbo 的一站式微办事平台。其由四个重要部分构成:微办事治理中间、微办事注册中间、微办事设备中间、微办事网关。先从一些关键词懂得下各个组件的特点:

? 微办事治理中间:无侵入加强主流开源微办事框架,丰富的办事治理功能

? 微办事注册中间/设备中间:全托管,高可用,丰富完美的监控报警,丰富的控制台运维操作,引擎类型丰富

? 微办事网关:全托管,支撑主流开源微办事网关

作为 MSE 产品族的组件,每个部分都是可插拔的,即可零丁应用微办事治理中间,也可零丁应用其他组件。当然,假如选择应用全部的 MSE 组件,你将会获得微办事生态的最佳实践。

MSE 成长汗青

MSE 在 2019 年 7 月正式上线,最早仅支撑 Zookeeper 微办事注册中间,经历了数月的公测期,在 2020 年 1 月正式贸易化,新增支撑了两个注册中间类型 Nacos 和 Eureka。贸易化之后,MSE 重要的产品演进偏向包含了以下几个方面:

? Region 开服。MSE 先后完成了国内 5 大年夜 Region(杭州、上海、张家口、北京、深圳)以及国外三个 Region (弗吉尼亚、新加坡、俄罗斯)的开服,将来 MSE 将会做到全球开服。

? 产品形态拓宽。2020 年 6 月,MSE 引入微办事治理中间,该组件经由过程无侵入的方法,为 Spring Cloud 和 Dubbo 等主流微办事框架供给了才能加强,如办事鉴权、无损下线、标签路由、办事测试;2020 年 7 月支撑了 Nacos 设备中间,用户只需申请 1.2.1 版本的 Nacos 即可同时获得注册中间和设备中间的才能;2020 年 8 月,MSE 引入微办事网关,供给全托管的 Zuul、Kong、Spring Cloud Gateway。

? 产品才能演进。今朝 MSE 还处于高速成长时代,几乎每个月份都有较大年夜功能的上线,并对已有特点进行加强,如微办事治理中间现已支撑 ECS、ACK 等产品情势的接入,支撑 SpringCloud 和 Dubbo 微办事框架类型的治理;MSE Zookeeper 供给开源欠缺的管控才能,供给了可视化编辑才能,节点监控才能。

提到微办事,人们最轻易联想的词可能有这些:办事发明、办事治理、路由,而这些微办事的概念,刚巧与 MSE 的各个构成部分对应,下面我会对这些组件逐个进行介绍。

MSE 注册中间&设备中间

办事发明这个词由来已久,DNS + LVS + Nginx 如许的架构其实就是最早期的办事发明,那时刻微办事这个词可能都还没有开端风行,跟着 Dubbo 和 SpringCloud 在国内遍地开花,微办事这个词开端变得火爆起来,与此同时,微办事开辟者们也将办事发明这一概念与 Zookeeper,Eureka、Nacos、Consul、Etcd 绑定了起来。

回过火来看,Zookeeper 的设计者可能压根没有想到其竟然对微办事架构产生了如斯深挚的影响,单从 Zookeeper 这款产品本身出发,将其称之为分布式调和组件可能更为恰当。这很大年夜程度跟 Dubbo 在国内的普及程度相干,那时刻 SpringCloud + Eureka 还没有横空出世,K8s + Etcd 更是鲜为人知,可以说 Dubbo + Zookeeper 的经典组合,几乎是国内最早落地微办事的一套解决筹划。跟着时光推移,越来越多的人表示出了对微办事的青睐,也有很多公司碰到一些瓶颈,个中一部分瓶颈就产生在 Zookeeper 之上,这时,一些变更已经悄然产生了。时光来到 2018 年,阿里将内部自用的注册中间开源了出来,供给给了用户一个新的选择,这就是今天的 Nacos。当越来越多的同类产品涌如今人们面前时,好的一面表示为体系的选择变多了,坏的一面也表示为选择变多了,架构师纷纷表示:早年我没得选,如今我只想用一个好的注册中间。限于篇幅,我们不在这里商量各个注册中间孰优孰劣,但可以肯定的是:主流的注册中间,MSE 都支撑。

MSE 基于对应用者的调研和今朝微办事的成长偏向,为阿里云用户供给了 Zookeeper、Nacos 和 Eureka 的托管。比拟开源 Zookeeper/Nacos/Eureka,MSE 应用起来有什么差别呢?起首须要给开辟者打的一剂强心剂是,MSE 的各个引擎类型是可以无缝对接开源的,功能上必定是开源的超集,所以可以应用开源 SDK 直接调用对应的引擎的接口。比拟开源产品,MSE 的差别化加强才能重要表如今全托管,高可用,丰富的监控报警,完美的可视化管控才能。

以 MSE Zookeeper 为例,【数据治理】功能中可以对 Znode 节点进行可视化的编辑,弥补了开源 Zookeeper 没有控制台的空白。

【监控】功能可以对引擎本身的相干指标进行监控,MSE Zookeeper 今朝支撑连接数、TPS/QPS、Znode 数量、请求列队数和平均请求耗时指标的监控,并且在【报警治理策略】中设备报警。

MSE 的高可用保障策略分为几方面,一方面须要用户购买集群时,选择 3 节点及以上的集群,如许有利于注册中间的一致性协定选主。另一方面,依托于 MSE 底层的 K8s 架构,保障节点一向以固定命量运行,并且,MSE 会主动将集群的不合节点分布在不合可用区,进一步保障可用性。

我们前面提到 Zookeeper 设计之初并不是用来做注册中间的,而 Nacos 则专门为微办事场景设计的,其包含了办事和设备两个范畴模型。假如用户选择了 MSE Nacos 引擎,也会获得设备中间的才能。

MSE 治理中间

国表里大年夜大年夜小小的微办事框架可以说数不堪数,但提到微办事治理,就拿最简单的办事查询,治理规矩编辑功能来说,鲜有微办事框架可以或许供给。Apache Dubbo 算是浩瀚微办事框架中比较出众的一个,其配套了开源的 Dubbo Admin,供给了办事查询,路由规矩的设备,办事测试等才能,但硬要说其缺点,也确切是存在的,例如 Apache Dubbo 的才能赓续再演进,但 Dubbo Admin 没有跟上节拍。MSE 治理中间重要解决的问题就是为微办事供给治理才能,而这些才能并不受你应用的微办事框架类型所限制。

在很长一段时光里,云上用户在微办事架构选型时,面对了一个难题:选择一个云厂商等于选择了一套微办事架构。站在云厂商的角度,固定一套 SDK,显然对云产品开辟而言是有优势的,大年夜大年夜降低了办事治理的开起事度;但从用户角度来看,这限制了用户的选择空间,特别是在上云之前就有了微办事基本的团队,最坏的可能性就是搬栈。为了避免绑定,MSE 治理中间所有的微办事治理才能都是无侵入式实现的,即不须要用户修改一行代码就可以获得我们功能列表里面的那些才能。MSE 治理中间仍然在公测阶段,假如你应用的是 Dubbo 和 SpringCloud,那恭喜你,不仅仅是代码不消改,一分钱也不消花就可以接入,免费应用办事查询、办事测试、金丝雀宣布和无损下线等才能。

【办事查询】可以将应用的办事信息,接口信息细粒度的展示出来。

【标签路由】可支撑应用实现灰度宣布。

【办事测试】支撑用户在开辟阶段对 Dubbo 和 SpringCloud 接口进行测试,解决手动编写测试代码的问题。

微办事网关

微办事网关是一个处于微办事之前的体系,作为微办工作况面向外部办事拜访者的独一进口,用来治理授权、拜访控制和流量路由等,如许办事就被网关保护起来,对所有的调用者透明。是以,隐蔽在网关后面的营业体系就可以专注于创建和治理办事,而不消去处理这些策略性的基本举措措施。

微办事网关与微办事体系无缝协作、快捷宣布、灵活控制,将基于微办事架构的营业应用办事快速、直接宣布成 API。基于注册中间动态感知办事节点状况,灵活进行路由、限流、鉴权、负载均衡等各类控制策略,即时更改即时生效,与治理中间的各类办事治理才能无缝集成。

微办事网关今朝支撑 Zuul、Kong 和 Spring Cloud Gateway 的托管。

作者:中心件小哥

本文为阿里云原创内容,未经许可不得转载