简介:微服务引擎 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 的托管。

总结

欢迎使用 MSE 微服务引擎,如果有任何关于产品的使用问题,可以加钉钉群:23371469 进行交流。

越来越多的企业选择微服务架构,注册和配置中心是其中的重要组件,相比于开源自建,微服务引擎 MSE 极大的降低运维复杂度,并提高了可用性。新增的微服务治理功能,无需修改任何代码和配置,兼容Spring Cloud/Dubbo近五年的所有版本,治理中心正在免费公测中,欢迎体验(https://www.aliyun.com/product/aliware/mse?spm=5176.10695662.1404739.1.1aef1399FkHcg7)。
点击这里(https://yqh.aliyun.com/live/detail/20873),观看微服务引擎MSE双十一直播,了解更多产品相关及优惠活动。

原文链接:https://developer.aliyun.com/article/777760?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

微服务最佳实践:MSE 微服务引擎相关推荐

  1. RESTful服务最佳实践

    本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...

  2. 嘉为鲸翼·多云管理平台荣获信通院可信云技术服务最佳实践

    7月21-22日,由中国信息通信研究院.中国通信标准化协会主办的"2022可信云大会"在北京隆重举行.本次大会以"云赋新生 算向未来"为主题,就高性能算力.算力 ...

  3. RESTful JSON Web服务最佳实践

    本文讲的是RESTful JSON Web服务最佳实践,[IT168 资讯]Collaxa BPEL产品-后来成为Oracle SOA战略核心的一部分-背后的关键人物之一,Edwin Khodabak ...

  4. jsp给前端注入值失败_基于 qiankun 的微前端最佳实践(图文并茂) 应用间通信篇...

    引言 大家好~ 本文是基于 qiankun 的微前端最佳实践系列文章之 应用间通信篇,本文将分享在 qiankun 中如何进行应用间通信. 在开始介绍 qiankun 的应用通信之前,我们需要先了解微 ...

  5. 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇

    写在开头 微前端系列文章: 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用间通信篇 万字长文+图文并茂+全面解 ...

  6. 同程旅游微服务最佳实践

    本文首发胖波聊架构界,微信公众号:xiaobo2as 本文概要 导言 微服务拆分的四个维度 微服务应该如何维护版本 如何从单体架构平滑过渡到微服务 结语 一.导言 同程微服务从立项到实施推广已经走过了 ...

  7. 谢康 | 同程旅游微服务最佳实践

    本文首发胖波聊架构界,微信公众号:xiaobo2as 本文概要 导言 微服务拆分的四个维度 微服务应该如何维护版本 如何从单体架构平滑过渡到微服务 结语 一.导言 同程微服务从立项到实施推广已经走过了 ...

  8. .NET微服务最佳实践eShopOnContainers

    本文翻译自微软Docs, 内嵌译者多年使用的参悟,如理解有误,请不吝赐教. 微软与社区专家合作,开发了功能齐全的云原生微服务示例应用eShopOnContainers. 该应用旨在展示使用.NET.D ...

  9. 微服务最佳实践 【已翻译100%】

    在我还不知道什么叫微服务架构的时候我就使用过它.以前,我写了一些管道程序(pipeline application),它由一些相互和队列交互的模块构成.自那之后,一批ThoughtWorks的专家也讨 ...

最新文章

  1. quick cocos2d-x 使用CCTableView 例子
  2. 查看mysql数据库服务_MySQL数据库之mysql5.7基础 查看mysql的服务状态
  3. nightwatchjs --Expect element to not include text
  4. 阿里云IoT何云飞:智物Cloud AIoT Native 为何能让设备智能更快一步
  5. 反思O2O演化的三个时代,大数据与智能化才是未来所在
  6. 古老的spc也可以用机器学习(三)-支持向量机算法
  7. [css] 举例说明with属性的fill-available有什么应用场景
  8. 所谓周末,就是在家好好做饭、好好睡觉、好好玩游戏
  9. 水滴互助 :网络互助「创新者窘境」如何打破?
  10. javascript异步机制 — call stack
  11. 数据库连接池运行的原理:
  12. iOS和安卓各自优缺点和测试时区别
  13. java操作远端ftp文件失败
  14. EXCEL如何将一列转为一行
  15. wps怎么减少行间距_wps怎么设置行距_wps的行间距在哪怎么调整单倍行距及1.5倍行距_wps文字_office之家...
  16. 新闻推荐系统【DAY1】
  17. 【线刷大师】纯净root线刷包,线刷教程及工具
  18. R计算Z分数(Z-Scores)
  19. 现代化高校智慧校园考勤模式
  20. 顶级图片管理加工软件Picasa免费中文版

热门文章

  1. 从零开始学习docker(九)持久化存储和数据共享之 bind Mounting
  2. java客户端访问kafka
  3. mkswap,swapon, swapoff命令:创建交换分区
  4. 用 pandas + matplotlib 绘制精美的K线图
  5. Python 实现循环的最快方式(for、while 等速度对比)
  6. Python 那些永远用不到的对象,我们称之为「垃圾」
  7. mac远程桌面连接windows_web浏览器通过Myrtille连接Windows远程桌面
  8. 关于计算机原理的知识
  9. java中debug使用
  10. 一个关于组织学员学习技术的笔试题--求讨论