微服务最佳实践:MSE 微服务引擎(微服务 mq)
ccwgpt 2024-10-12 02:41 23 浏览 0 评论
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 的托管。
本文为阿里云原创内容,未经允许不得转载。
相关推荐
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
-
Epic商店很香,但也有不少抱怨,其中一条是启动游戏太慢。那么,如果让Steam启动Epic游戏,会不会速度更快?众所周知,Steam可以启动非Steam游戏,方法是在客户端左下方点击“添加游戏”,然...
- Docker看这一篇入门就够了(dockerl)
-
安装DockerLinux:$curl-fsSLhttps://get.docker.com-oget-docker.sh$sudoshget-docker.sh注意:如果安装了旧版...
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
-
2016年6月15日,我AY对外发布AYUI(WPF4.0开发)的UI框架,开发时候,你可以无任何影响的去开发PC电脑上的软件exe程序。AYUI兼容XP操作系统,在Win7/8/8.1/10上都顺利...
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
-
浏览器套壳方案,C#和C++有更多,你说的没错,从数量和历史积淀来看,C#和C++确实有不少方式来套壳浏览器,让Web内容在桌面应用里跑起来。但咱们得把这套壳二字掰扯清楚,因为这里面学问可大了!不同的...
- OneCode 核心概念解析——Page(页面)
-
在接触到OneCode最先接触到的就是,Page页面,在低代码引擎中,页面(Page)设计的灵活性是平衡“快速开发”与“复杂需求适配”的关键。以下从架构设计、组件系统、配置能力等维度,解析确...
- React是最后的前端框架吗,为什么这么说的?
-
油管上有一位叫Theo的博主说,React是终极前端框架,为什么这么说呢?让我们来看看其逻辑:这个标题看起来像假的,对吧?React之后明明有无数新框架诞生,凭什么说它是最后一个?我说的“最后一个”不...
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
-
面试官放下简历,手指在桌上敲了三下:"你上次解决的技术难题,现在回头看有什么不足?"眼前的候选人瞬间僵住——这是上周真实发生在蚂蚁金服终面的场景。2025年的前端战场早已不是框架熟练...
- 前端新星崛起!Astro框架能否终结React的霸主地位?
-
引言:当"背着背包的全能选手"遇上"轻装上阵的短跑冠军"如果你是一名前端开发者,2024年的框架之争绝对让你眼花缭乱——一边是React这位"背着全家桶的全能选...
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
-
什么是BFFBFF全称是BackendsForFrontends(服务于前端的后端),起源于2015年SamNewman一篇博客文章《Pattern:BackendsFor...
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
-
在AI技术飞速发展的当下,如何更高效地与大语言模型(LLM)沟通,以获取更准确、更有价值的输出,成为了一个备受关注的问题。谷歌最新发布的《PromptEngineering》白皮书,为这一问题提供了...
- 光的艺术:灯具创意设计(灯光艺术作品展示)
-
本文转自|艺术与设计微信号|artdesign_org_cn“光”是文明的起源,是思维的开端,同样也是人类睁眼的开始。每个人在出生一刻,便接受了光的照耀和洗礼。远古时候,人们将光奉为神明,用火来...
- MoE模型已成新风口,AI基础设施竞速升级
-
机器之心报道编辑:Panda因为基准测试成绩与实际表现相差较大,近期开源的Llama4系列模型正陷入争议的漩涡之中,但有一点却毫无疑问:MoE(混合专家)定然是未来AI大模型的主流范式之一。...
- Meta Spatial SDK重大改进:重塑Horizon OS应用开发格局
-
由文心大模型生成的文章摘要Meta持续深耕SpatialSDK技术生态,提供开自去年9月正式推出以来,Meta持续深耕其SpatialSDK技术生态,通过一系列重大迭代与功能增强,不断革新H...
- "上云"到底是个啥?用"租房"给你讲明白IaaS/PaaS/SaaS的区别
-
半夜三点被机房报警电话惊醒,顶着黑眼圈排查服务器故障——这是十年前互联网公司运维的日常。而现在,程序员小王正敷着面膜刷剧,因为公司的系统全"搬"到了云上。"部署到云上"...
- php宝塔搭建部署thinkphp机械设备响应式企业网站php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的机械设备响应式企业网站php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
- Docker看这一篇入门就够了(dockerl)
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
- OneCode 核心概念解析——Page(页面)
- React是最后的前端框架吗,为什么这么说的?
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
- 前端新星崛起!Astro框架能否终结React的霸主地位?
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)