阿里云分布式应用服务EDAS 最近发布了支持原生Dubbo和Spring Cloud应用功能的新版本,此功能是以非侵入方式支持的,且几乎不需要修改任何代码。在此我们体验了一下如何在EDAS上部署原生Dubbo和Spring Cloud应用。
原生Dubbo应用
自从阿里重启Dubbo维护以来,其热度迅速蹿升,Github上的星标数已经达到了2.2万个之多,可谓中国开源软件界的明星产品。但是作为自家商业化输出的EDAS产品,却一直以来只能支持闭源的HSF微服务框架,对用户而言不能不说是一种遗憾。虽然以前也是可以支持Dubbo应用的,但却是以一种所谓的Dubbo over HSF来变相实现的,并不是真正无侵入的原生应用。现在这个担忧终于没有了,EDAS官方正式开始了商业化支持Dubbo的进程。
闲话少絮,我们先来构建一个简单的Dubbo应用,并将其部署到EDAS上面。根据这篇文档介绍的方法,我们来实现一个简单的Echo应用。此应用的能力是客户端通过HTTP接口获得一个字符串消息,然后将此消息发送给服务端,服务端接收到这个消息之后,再原封不动的回传给客户端,最终客户端将此回声信息打印出来,程序结束。
本文并不是一篇教程类文章,因此不会详细介绍该如何编写这样一个应用,只来关注一些重点内容。首先,除了依赖Dubbo库之外,还需要依赖一个EDAS提供的扩展库edas-dubbo-extension。该扩展库就是EDAS支持原生Dubbo应用的关键所在。
图1.edas-dubbo-extension依赖
除此之外,我们还需要将Dubbo配置文件中的registry参数设置为轻量级配置中心的地址。
图2.registry地址
经过了这样的修改之后,我们的应用就可以原封不动的部署到EDAS上面了。
实际的部署过程与普通应用无异,应该是EDAS会自动判断该应用是否为原生Dubbo进而区分对待,因此熟悉EDAS的用户在这一点上不会碰到任何问题。部署完成以后在Provider和Consumer应用的服务列表里面,分别可以看到如下内容,说明服务启动正常。
图3.发布的服务
图4.消费的服务
原生Spring Cloud应用
这篇文章 非常详细的介绍了原生Spring Cloud应用如何与EDAS集成,在这里就不再赘述了。同支持原生Dubbo使用的方式一样,在构建适应EDAS环境的Spring Cloud应用时需要引入额外的ANS组件,这使得在本地轻量级配置中心环境下调试通过的应用可以无需任何改动就直接部署到EDAS环境上,可谓非常方便。
商业化版本与开源版本的对比
作为商业化产品,其跟开源版本相比还是有不少的差异,且极大的提高了用户的工作效率、降低了人力投入。
首先,EDAS版本的原生Dubbo和Spring Cloud应用支持共享的服务注册与发现组件,比起部署开源版本所需的Zookeeper、Redis或Consul而言,节省了系统开销与运维成本。
其次,开源版本的Dubbo并不天然支持配置管理功能,Spring Cloud有基于Git的配置管理能力,而这一点在EDAS上也是开箱即用的,且支持配置推送能力。
另外,同以往HSF应用一样,原生Dubbo和Spring Cloud应用同样支持监控和告警能力,也免去了部署相关开源组件的需要。
随着版本的继续迭代升级,相信EDAS对开源版本的兼容会越来越好。