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

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务引擎 MSE(Microservice Engine)是一个面向业界主流开源微服务框架 Spring Cloud 和 Dubbo 的一站式微服务平台。其由四个主要部分组成:微服务治理中心、微服务注册中心、微服务配置中心、微服务网关。

MSE 是什么

image.png

微服务引擎 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 没有控制台的空白。

image.png
【监控】功能可以对引擎本身的相关指标进行监控,MSE Zookeeper 目前支持连接数、TPS/QPS、Znode 数量、请求排队数和平均请求耗时指标的监控,并且在【报警管理策略】中配置报警。

image.png
image.png
MSE 的高可用保障策略分为几方面,一方面需要用户购买集群时,选择 3 节点及以上的集群,这样有利于注册中心的一致性协议选主。另一方面,依托于 MSE 底层的 K8s 架构,保障节点一直以固定数量运行,并且,MSE 会自动将集群的不同节点分布在不同可用区,进一步保障可用性。
我们前面提到 Zookeeper 设计之初并不是用来做注册中心的,而 Nacos 则专门为微服务场景设计的,其包含了服务和配置两个领域模型。如果用户选择了 MSE Nacos 引擎,也会获得配置中心的能力。

image.png

MSE 治理中心

国内外大大小小的微服务框架可以说数不胜数,但提到微服务治理,就拿最简单的服务查询,治理规则编辑功能来说,鲜有微服务框架能够提供。Apache Dubbo 算是众多微服务框架中比较出众的一个,其配套了开源的 Dubbo Admin,提供了服务查询,路由规则的配置,服务测试等能力,但硬要说其缺点,也确实是存在的,例如 Apache Dubbo 的能力不断再演进,但 Dubbo Admin 没有跟上节奏。MSE 治理中心主要解决的问题便是为微服务提供治理能力,而这些能力并不受你使用的微服务框架类型所限制。
在很长一段时间里,云上用户在微服务架构选型时,面临了一个难题:选择一个云厂商等于选择了一套微服务架构。站在云厂商的角度,固定一套 SDK,显然对云产品开发而言是有优势的,大大降低了服务治理的开发难度;但从用户角度来看,这限制了用户的选择空间,特别是在上云之前就有了微服务基础的团队,最坏的可能性就是搬栈。为了避免绑定,MSE 治理中心所有的微服务治理能力都是无侵入式实现的,即不需要用户修改一行代码就可以获得我们功能列表里面的那些能力。MSE 治理中心仍然在公测阶段,如果你使用的是 Dubbo 和 SpringCloud,那恭喜你,不仅仅是代码不用改,一分钱也不用花就可以接入,免费使用服务查询、服务测试、金丝雀发布和无损下线等能力。
【服务查询】可以将应用的服务信息,接口信息细粒度的展示出来。

image.png
【标签路由】可支持应用实现灰度发布。

image.png
【服务测试】支持用户在开发阶段对 Dubbo 和 SpringCloud 接口进行测试,解决手动编写测试代码的问题。
image.png

微服务网关

微服务网关是一个处于微服务之前的系统,作为微服务环境面向外部服务访问者的唯一入口,用来管理授权、访问控制和流量路由等,这样服务就被网关保护起来,对所有的调用者透明。因此,隐藏在网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施。
微服务网关与微服务体系无缝协作、快捷发布、灵活控制,将基于微服务架构的业务应用服务快速、直接发布成 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双十一直播,了解更多产品相关及优惠活动。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
0
0
0
13400
分享
相关文章
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
119 1
构建高效微服务架构:最佳实践与挑战
在现代软件开发中,微服务架构因其高度的可扩展性、灵活性和敏捷性而受到青睐。本文深入探讨了构建高效微服务架构的关键策略,包括服务的划分、通信机制、数据管理、部署与监控等方面的最佳实践。同时,文章也分析了在实施过程中可能遇到的挑战,如服务间的依赖管理、数据一致性问题、安全考量及性能优化等,并提出了相应的解决方案。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们在构建微服务系统时能够有效规避风险,提升系统的健壮性和用户体验。
云原生架构下的微服务设计原则与最佳实践##
在数字化转型的浪潮中,云原生技术以其高效、灵活和可扩展的特性成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,聚焦于微服务设计的关键原则与实施策略,旨在为开发者提供一套系统性的方法论,以应对复杂多变的业务需求和技术挑战。通过分析真实案例,揭示了如何有效利用容器化、持续集成/持续部署(CI/CD)、服务网格等关键技术,构建高性能、易维护的云原生应用。文章还强调了文化与组织变革在云原生转型过程中的重要性,为企业顺利过渡到云原生时代提供了宝贵的见解。 ##
云原生架构下微服务的最佳实践与挑战####
【10月更文挑战第20天】 本文深入探讨了云原生架构在现代软件开发中的应用,特别是针对微服务设计模式的最优实践与面临的主要挑战。通过分析容器化、持续集成/持续部署(CI/CD)、服务网格等关键技术,阐述了如何高效构建、部署及运维微服务系统。同时,文章也指出了在云原生转型过程中常见的难题,如服务间的复杂通信、安全性问题以及监控与可观测性的实现,为开发者和企业提供了宝贵的策略指导和解决方案建议。 ####
94 5
|
6月前
|
构建高效后端服务:微服务架构深度解析与最佳实践###
【10月更文挑战第19天】 在数字化转型加速的今天,企业对后端服务的响应速度、可扩展性和灵活性提出了更高要求。本文探讨了微服务架构作为解决方案,通过分析传统单体架构面临的挑战,深入剖析微服务的核心优势、关键组件及设计原则。我们将从实际案例入手,揭示成功实施微服务的策略与常见陷阱,为开发者和企业提供可操作的指导建议。本文目的是帮助读者理解如何利用微服务架构提升后端服务的整体效能,实现业务快速迭代与创新。 ###
111 2
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
从单体应用迁移到微服务的最佳实践
【8月更文第29天】随着软件架构的发展,越来越多的企业开始考虑从传统的单体应用迁移到微服务架构。虽然迁移可以带来诸如更好的可扩展性、更高的灵活性等优势,但这一过程也可能充满挑战。本文将详细介绍如何顺利地进行这一转变,并提供一些实用的步骤和示例代码。
298 0

相关产品

  • 微服务引擎
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等