EDS 微服务治理

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: EDS 微服务治理

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


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

·        EDAS介绍

·        微服务开发

·        服务查询

·        金丝雀发布

 

一、EDAS介绍

什么是EDAS

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

以Dubbo举例说明:

image.png

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

EDAS支持的版本

微服务开发

1、Dubbo

支持2.5x 2.6x 2.7x

2、SpringCloud

支持D版本以及以上版本

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

 

EDAS原生托管Dubbo

image.png

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

 

EDAS Dubbo 组件 & 开源组件矩阵

image.png

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


二 微服务开发部署

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

  1. 控制台上传、部署

image.png

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

image.png

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

三 服务查询

image.png

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

点击实例

image.png

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

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

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


与Dubbo Admin区别

image.png

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

 

弊端:

  1. 无法扩展
  2. 因存储在内容,性能也会存在不足

 

EDAS合理做了改变

 

与Nacos 区别

image.png

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

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

 

开源实现总结:

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

  • Dubbo Admin 有版本的限制,仅支持Dubbo 2.7+
  • Dubbo Admin 同步了注册中心全量数据,资源消耗大,由于内存限制,无法横向扩展,实现并不优雅
  • Nacos 控制台提供的服务信息是注册中心视角的服务,并非微服务视角的服务
  • Nacos 控制台缺少与服务治理其他能力的联动,本质上还是注册中心的功能
  • 开源实现无法满足混合部署类型服务的诉求,部分功能可能多种微服务框架并存

 

EDAS服务查询实践

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

 

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

 

四 灰度发布

image.png

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

image.png

五 微服务增强

成本:无需自行运维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>

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas&nbsp;
目录
相关文章
|
9天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
13天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
17 4
|
1月前
|
监控 Cloud Native 云计算
构建未来:云原生架构下的微服务治理
【2月更文挑战第30天】随着云计算的不断演进,云原生技术逐渐占据了软件开发与运维的核心地位。本文深入探讨了在云原生生态系统中,如何有效管理和治理微服务,确保系统的高可用性、可扩展性和安全性。通过对容器化技术、服务网格、以及微服务框架的剖析,我们展示了在云平台上构建和管理微服务的先进策略和实践。
|
1月前
|
负载均衡 算法 微服务
常见的微服务流量治理策略
常见的微服务流量治理策略
50 3
|
2月前
|
设计模式 人工智能 负载均衡
《后端架构设计中的微服务治理与容错机制》
【2月更文挑战第8天】在高并发、大规模应用中,微服务架构已经成为一种常见的设计模式。然而,随着微服务数量的增加,服务之间的依赖关系变得复杂,微服务治理和容错机制成为了关键问题。本文将介绍在后端架构设计中,如何进行微服务治理以及如何实现有效的容错机制,以应对复杂的微服务环境。
|
2月前
|
存储 运维 监控
|
2月前
|
缓存 负载均衡 算法
|
5月前
|
Kubernetes Java 双11
抗住双十一!实战Alibaba笔记,深度解析阿里微服务亿级流量治理
随着微服务的发展及DDD领域驱动设计的兴起,越来越多的企业开始使用微服务架构。为了应对微服务化带来的难题,一批微服务组件与应用涌现出来,如辅助问题排查得分布式调用链追踪探针、简化部署运维的Kubernetes,以及本书介绍的熔断器组件等。
|
6月前
|
运维 Java BI
千亿流量并发治理!Alibaba实战Sentinel笔记,为微服务保驾护航
随着微服务的发展及DDD领域驱动设计的兴起,越来越多的企业开始使用微服务架构。无论是项目重构,还是新项目的开发,即使项目初期没有多大的流量,但从长远考虑,企业也基本会优先使用微服务架构。但“鱼和熊掌不可兼得”,项目微服务化在提升开发效率及降低后期维护成本的同时,也加大了服务部署运维及问题排查的难度,并且容易导致服务崩溃出现级联效应,也就是“服务雪崩”。
|
6月前
|
存储 缓存 监控
架构师进阶,微服务设计与治理的16条常用原则
架构师进阶,微服务设计与治理的16条常用原则
230 0