EDS 微服务治理

Posted 进阶架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EDS 微服务治理相关的知识,希望对你有一定的参考价值。

微服务是一个经久不衰的热门话题,很多国内的公司选择使用 Dubbo、SpringCloud 作为自己公司内部的微服务框架,而在 EDAS 的赋能下,这些微服务框架获得了更加强大的治理能力。


本次分享将主要围绕以下四个方面展开:

·        EDAS介绍

·        微服务开发

·        服务查询

·        金丝雀发布

 

一、EDAS介绍

什么是EDAS

企业级分布式应用服务 EDAS(EnterpriseDistributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。

以Dubbo举例说明:


EDAS托管,省去了很多步骤,节省了一些无关的开发运维。

EDAS支持的版本

微服务开发

1、Dubbo

支持2.5x 2.6x 2.7x

2、SpringCloud

支持D版本以及以上版本

3、HSF(不建议使用,阿里内部,未开源)

 

EDAS原生托管Dubbo

EDS 微服务治理


消费者与提供者之间存在服务需要治理,EDAS托管之后,提供服务注册与发现、配置管理、微服务治理平台的功能。开发者,无需关心服务治理,只要进行消费调用即可。

 

EDAS Dubbo 组件 & 开源组件矩阵

EDS 微服务治理


EDAS注册中心,采用的Nacos注册中心。用户如果采用的Nacos,那么可以无缝迁移;如果采用的ZK之类的注册中心,则有两种方案,可以切换到Nacos注册中心,或者 沿用原注册中心。


二 微服务开发部署

部署非常便捷,可以提供两种方案选择

  1. 控制台上传、部署


    EDS 微服务治理

  2. EDAS提供的IDEA插件(CloudToolKit),上传、部署

 

EDS 微服务治理


EDAS为应用,完全有了托管,对于客户,无需关心扩容等运维事项。

三 服务查询

EDS 微服务治理

应用部署完毕之后,点击服务查询,就清晰地看到部署的实例情况

点击实例

EDS 微服务治理

可以非常清晰直观的展示出应用部署情况。

EDAS托管之后,不管Dubbo版本,对于元数据都有相关的显示。

通过接口元数据,可以很明晰的看出对外暴露的所有的服务接口。


与Dubbo Admin区别

EDS 微服务治理

DubboAdmin是通过与注册中心协同,获取全部的注册信息,去管理应用情况

 

弊端:

  1. 无法扩展

  2. 因存储在内容,性能也会存在不足

 

EDAS合理做了改变

 

与Nacos 区别

EDS 微服务治理

Nacos的很多接口的调用信息显示,没有完全开源出来,所以也是有些不是很直观

Nacos更多的是注册中心的控制台,对于服务治理,是很难解决的

 

开源实现总结:

总的来说,服务查询的开源实现能够解决一定程度的问题,但同时也有一定的局限性

  • Dubbo Admin 有版本的限制,仅支持Dubbo 2.7+

  • Dubbo Admin 同步了注册中心全量数据,资源消耗大,由于内存限制,无法横向扩展,实现并不优雅

  • Nacos 控制台提供的服务信息是注册中心视角的服务,并非微服务视角的服务

  • Nacos 控制台缺少与服务治理其他能力的联动,本质上还是注册中心的功能

  • 开源实现无法满足混合部署类型服务的诉求,部分功能可能多种微服务框架并存

 

EDAS服务查询实践

EDAS采用无侵入式的Agent方案对托管微服务应用进行微服务治理

 

无侵入方案通过Agent技术来实现,通过字节码增强技术,运行时对框架代码进行增强,例如服务创建、服务注销时进行拦截,上报给EDAS

 

四 灰度发布

EDS 微服务治理

选择金丝雀发布,即可部署需要进行灰度的包

五 微服务增强

成本:无需自行运维Eureka、Zookeeper、Consul等中间件组件,可以直接使用EDAS提供的服务发现与配置管理能力。

部署:服务优雅上下线和分批发布功能,让应用部署可配、可查、可控

服务治理:EDAS提供了服务查询、条件路由、黑白名单、标签路由、动态配置、负载均衡、权重配置和统一配置管理,可以对应用进行全面的服务治理

弹性伸缩:EDAS提供了弹性伸缩功能,可以根据流量高峰和低谷实时对应用扩容和缩容

限流降级:EDAS提供了限流降低功能,保证应用高可用

流控:EDAS提供了高级监控功能,除了基本的实力信息查询外,可以查询微服务调用链、服务调用拓扑和慢SQL

 

总结:

  1. EDAS对现在的Dubbo、SpringCloud开源功能作了沿用以及相关的拓展

  2. 在上述基础上,EDAS总结出用户更多呼声比较大的需求功能,比如开源中没有实现的,或者因为机器限制等不方便实现的功能,EDAS都已经覆盖性的作了实现。

 

答疑

问题1:灰度的最小粒度?

针对SpringCloud用户,会根据path设置,外加EL表达式的新建规则,去粒度控制

针对Dubbo用户,会根据方法配置,外加EL表达式的新建规则,去粒度控制

问题2:灰度的实现机制?

Dubbo里边会有很多的filter,SpringCloud会有很多agent,EDAS会自动在启动时,把配置注入到对应的位置,以此来实现灰度

问题3:可以支持Dubbo版本?

原则上支持Dubbo 2.5 2.6 2.7,是可以承诺的,但是之前的版本,也是可以使用,但是不承诺所有功能一切正常

问题4EDAS的定位,后续补充产品?

EDAS构成分为,微服务解决方案、应用托管解决方案、容器托管解决方案


<end>

以上是关于EDS 微服务治理的主要内容,如果未能解决你的问题,请参考以下文章

【知识总结】4.微服务的治理去中心化,服务发现,安全,部署

springboot-服务治理

微服务治理实践:服务查询

在容器云上部署微服务,如何实现微服务治理?

不改一行代码,轻松拥有企业级微服务治理|MSE微服务治理专业版发布

不改一行代码,轻松拥有企业级微服务治理|MSE微服务治理专业版重磅发布