Microservices - MSE V1
什么是微服务治理
概述
微服务治理中心能够无侵入增强主流Spring Cloud、Apache Dubbo等开源微服务框架,提供丰富的服务治理和流量防护功能,将中间件与业务解耦
微服务治理能力与应用场景
全链路流量治理
MSE微服务治理为微服务的各个环节提供了全面的治理解决方案,帮助企业快速构建完整且健壮的微服务体系
低成本实现微服务敏捷开发
- 依托于开发环境隔离能力,可以在不增加物理机器成本的前提下,低成本扩展出多套逻辑隔离的开发环境,有效地解决环境抢占和冲突问题,实现敏捷开发
- 开发环境隔离:通过全链路灰度这种逻辑隔离方式实现开发环境隔离,可以在不增加成本的情况下增加多套开发测试环境,助您实现敏捷开发
消除变更过程中风险
依托于配置管理、无损上下线和全链路灰度能力,全面消除变更过程中的风险
无损上线
通过无损上线时的延迟注册和小流量预热可有效避免新版本上线时的流量损失
无损下线
通过无损下线中的自适应等待和主动通知,可有效避免旧版本下线时的流量损失
全链路灰度
- 通过创建泳道组与泳道可精确控制RPC、HTTP、异步消息等多种类型的流量
- 从前端到网关再到后端各个微服务间,实现流量在泳道内闭环,从而快速实现微服务架构下的全链路灰度发布能力
增强服务运行过程中稳定性
依托于限流、熔断降级、隔离等能力,可以在出现偶发的流量洪峰和依赖服务出现异常时,有效地限流保护、削峰填谷、隔离故障、降级保护
- 流量控制:通过流量控制功能,可以对突发的流量进行限制,在尽可能处理请求的同时保障服务正常运行
- 熔断降级:在某个方法出现不稳定(如超时或异常比例升高)时,对该方法的调用进行限制,使请求快速失败,从而防止错误影响整个链路的稳定性
- 同可用区优先:在应用调用服务时,优先调用同机房的服务Provider,能够使流量在同一个可用区内流转,不仅限于使用默认提供的轮询方式进行负载均衡
为什么要使用MSE微服务治理
- 业务无侵入、无感知:应用代码、配置、镜像无需修改即可接入治理中心,支持Spring Cloud、Dubbo和多语言应用,确保业务的连续性和稳定性
- 0升级成本:兼容现有的服务治理方式,无需额外的开发工作即可实现功能升级和性能优化
- 全面兼容开源:100%兼容开源社区产品,无缝对接K8s,并在性能、可观测性、操作便捷上提供增强的能力
- 更轻量:无需改变现有业务架构,即可享受高效的微服务治理能力
- 大规模生产实践:基于阿里巴巴集团内部大规模生产实践验证,能够有效提升系统稳定性和开发效率,确保业务的顺利进行
功能特性
| 功能模块 | 功能详情 |
|---|---|
| 服务查询 | 支持查询部署应用的服务列表和服务详情,包含基本信息、服务调用关系和元数据等 |
| 无损上下线 | 通过无损上线时的延迟注册和小流量预热可有效避免新版本上线时的流量损失 通过无损下线中的自适应等待和主动通知,可有效避免旧版本下线时的流量损失 |
| 标签路由 | 通过标签将一个或多个服务的提供者划分到同一个分组,从而约束流量只在指定分组中流转,实现流量隔离的目的 |
| 全链路灰度 | 通过创建泳道规则将一个或多个应用的相同版本划分到同一个泳道中,从而约束流量只在指定泳道中流转,实现全链路的流量隔离的目的 |
| 流量防护 | 流量防护以流量为切入点,从流量控制、隔离控制、热点参数防护、Web防护等多个维度来保障业务的稳定性,提供更专业、稳定的流量防护手段、秒级的流量水位分布分析功能 |
使用限制
| 限制项 | 限制值 |
|---|---|
| 微服务框架 | Spring Cloud Edgware 2017-11-22 及以上版本 Dubbo 2.5.0 及以上版本 Gin 1.8.0 ~ 1.10.0 版本 Grpc-go 1.44.0 ~ 1.65.1 版本 |
| 接入方式 | 支持ACK、ECS和SAE应用接入 |
| Java应用JDK版本 | 支持JDK 1.8、11、17、21版本应用接入 |
| 接入资源(接口)数量 | 每个应用接入资源(接口)数量:1600 |
应用场景
概述
- MSE提供了免运维,高可用的引擎服务,提供全托管的注册中心和配置中心、网关以及无侵入的开源服务治理能力
- 可以使用在大数据,微服务领域,帮助业务快速集成和降低改造成本
微服务注册配置中心
MSE注册配置中心可以实现服务注册与发现、配置管理、分布式数据管理等功能,支持多种引擎类型,包括兼容Nacos、ZooKeeper和Eureka,它适用于以下业务场景
服务注册与发现
在快速发展的云计算时代,微服务应用越来越广泛,MSE为采用Spring Cloud和Dubbo框架开发的微服务提供了高可用、免运维和稳定的服务注册中心
分布式应用一致性协调(支持非微服务场景)
- MSE ZooKeeper提供了一系列分布式协调解决方案,如分布式锁和分布式队列等,可以帮助您构建高可用性的分布式应用系统
- 如果您使用的是Hadoop、HBase、Kafka和Flink等大数据组件,将默认使用MSE提供的ZooKeeper做HA(High Availability )方案
推荐搭配使用
微服务治理
增强微服务线上稳定性,提升研发效率
在微服务上线的过程中,依托于MSE提供的微服务治理能力,您可以在不修改任何代码和配置的情况下,获得以下能力
全面消除变更过程中的风险
依托于配置管理、无损上下线和全链路灰度能力,全面消除变更过程中的风险
全面消除偶发问题引发的风险
依托于限流、降级、熔断、隔离等能力,可以在出现偶发的流量洪峰和依赖服务出现异常时,有效地限流保护、削峰填谷、隔离故障、降级保护
低成本实现微服务敏捷开发
依托于开发环境隔离能力,可以在不增加物理机器成本的前提下,低成本扩展出多套逻辑隔离的开发环境,有效地解决环境抢占和冲突问题,实现敏捷开发
推荐搭配使用
微服务引擎MSE + 云服务器ECS + 云数据库RDS版 + 对象存储OSS + 容器服务
云原生网关
将流量网关与微服务网关合二为一,降低资源开销
- 流量网关(如Nginx)是指提供全局性的、与后端业务应用无关的策略,例如HTTPS证书卸载、Web防火墙、全局流量监控等
- 微服务网关(如Spring Cloud Gateway)是指与业务紧耦合的、提供单个业务域级别的策略,如服务治理、身份认证等
- MSE云原生网关将两层网关变为一层,不仅可以节省50%的资源开销,还可以降低运维及使用成本
- 在传统网关模式中,流量网关负责南北向流量调度及安全防护,微服务网关负责东西向流量调度及服务治理
- 在下一代网关模式中,云原生网关负责东西南北向流量调度及安全防护和服务治理,部署结构示意图如下:
提供丰富的认证鉴权能力,降低安全接入成本
- 认证鉴权是网关的刚需,MSE云原生网关不仅提供常规的JWT认证,也提供基于授权开放网络标准OAuth 2.0的OIDC认证
- 同时,MSE云原生网关也支持阿里云的应用身份服务IDaaS,帮助您实现支付宝、淘宝、天猫等第三方认证登录,并以插件的方式支持扩展认证鉴权功能,以降低安全接入成本
- MSE云原生网关负责东西南北向流量调度及安全防护与服务治理,认证鉴权功能示意图如下:
推荐搭配使用
云原生网关 + 云数据库RDS版 + 对象存储OSS + 容器服务
分布式任务调度
提供多种调度任务类型,满足不同场景的任务调度需求
- 阿里云分布式任务调度提供了多种调度任务类型,在定时调度和工作流调度中支持基于多语言的多种任务类型
- 包括Java,脚本任务,Golang,DataWorks,Spring,HTTP,K8s等
支持可视化的工作流编排,简化任务依赖管理
阿里云分布式任务调度SchedulerX可以通过图形化配置任务,并且任务间可传递数据
开源Sentinel与商业化AHAS流量防护对比
概述
- Sentinel是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性
- AHAS流量防护是开源框架Sentinel的商业化产品,是阿里巴巴双十一技术体系中的核心组件
- 它在Sentinel的基础上,支持更多的业务功能
应用侧
核心能力
| 功能描述 | AHAS流量防护 | 开源Sentinel |
|---|---|---|
| 基础的流控降级、系统保护功能 | 支持 | 支持 |
| 慢SQL识别与熔断 | 支持 | 不支持 |
| 异常自动重试 | 支持 | 不支持 |
| 弱依赖接口主动降级 | 支持 | 不支持 |
| 全自动托管、高可用的集群流控服务 | 支持 | 不支持 |
| Nginx及Ingress网关流量控制 | 支持 | 不支持 |
| 全自动托管的Service Mesh集群防护 | 支持 | 不支持 |
| Web、RPC流控处理逻辑一键配置 | 支持 | 仅支持硬编码 |
| 缓存防护(Redis、Memcached) | 支持 | 不支持 |
| 专业的自动化熔断(渐进式熔断恢复、默认熔断规则) | 支持 | 不支持 |
| K8s HPA自动弹性 | 支持 | 不支持 |
| PHP或者C++应用高可用防护 | 支持 | 不支持 |
快速接入
| 功能描述 | AHAS流量防护 | 开源Sentinel |
|---|---|---|
| Java Agent方式无侵入快速接入 | 支持近20种主流框架 | 不支持 |
| K8s Java应用快速接入 | 支持近20种主流框架 | 不支持 |
| PHP、Go应用快速接入 | 支持 | 不支持 |
| Nginx、Ingress、Envoy网关快速接入 | 支持 | 不支持 |
运维侧
| 功能描述 | AHAS流量防护 | 开源Sentinel |
|---|---|---|
| 控制台实时秒级监控 | 支持接口和应用维度监控,支持按调用类型分类,支持QPS、RT、CPU usage、Load等指标。 | 有限的支持(内存存储5分钟) |
| Top N接口统计 | 支持 | 不支持 |
| 业务异常监控、详情查询 | 支持 | 不支持 |
| 历史监控查询 | 支持 | 不支持 |
| 机器水位热力图 | 支持 | 不支持 |
| 业务场景流量大盘 | 支持 | 不支持 |
| 规则实时推送 | 秒级生效,实时可靠。 | HTTP方式推送,不可靠。 |
| 规则管理 | 多重持久化,高可用。 | 内存存储,不可靠。 |
| 针对流控、异常、系统指标飙高等场景的自动化告警 | 支持 | 不支持 |
| 主子账号权限控制 | 支持 | 不支持 |











