Dubbo生态再添新兵,许久未见的Dubbo Admin回来了!
Posted Java后端技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo生态再添新兵,许久未见的Dubbo Admin回来了!相关的知识,希望对你有一定的参考价值。
每天带你看高清大图哦!
为了提升 Dubbo 里程碑版本2.7.0的使用体验,于去年年中启动了 Dubbo Admin 的重构计划,并作为Dubbo生态的子项目,于近期发布了v0.1,重构后的项目在结构上的变化如下:
将后端框架从Webx替换成Spring Boot
前端采用Vue和Vuetify.js作为开发框架
移除Velocity模板
集成Swagger,提供API管理功能
当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,例如服务治理和服务查询等,同时,也支持了Dubbo2.7中服务治理的新特性。
http://47.91.207.147/#/service
GitHub:
https://github.com/apache/incubator-dubbo-ops
Dubbo Admin作为独立项目发布的考虑
Dubbo Admin 控制台和Dubbo核心功能的耦合度比较低,功能上的差异也比较大,部署的形态以及各自的发布节奏也不太一样;Dubbo是作为进程的运行时依赖,而控制台需要有独立的Server部署。因此,我们将 Dubbo Admin 作为独立的项目在社区进行发布。
配置规范
由于在Dubbo2.7中,配置中心和注册中心做了分离,并且增加了元数据中心,因此Dubbo Admin的配置方式也做了更新,application.properties
中的配置如下:
功能介绍
功能上,主要延续了之前版本的功能,包括服务查询和服务治理,2.7版本在服务治理的功能上有了很大的改进,这些改进也大部分都会以Dubbo Admin作为入口来体现。
标签路由
标签路由是Dubbo2.7引入的新功能,配置以应用作为维度,给不同的服务器打上不同名字的标签,配置如下图所示:
调用的时候,客户端可以通过setAttachment
的方式,来设置不同的标签名称,比如本例中,setAttachment(tag1)
,客户端的选址范围就在如图所示的三台机器中,可以通过这种方式来实现流量隔离,灰度发布等功能。
应用级别的服务治理
在Dubbo2.6及更早版本中,所有的服务治理规则都只针对服务粒度,如果要把某条规则作用到应用粒度上,需要为应用下的所有服务配合相同的规则,变更,删除的时候也需要对应的操作,这样的操作很不友好,因此Dubbo2.7版本中增加了应用粒度的服务治理操作,对于条件路由(包括黑白名单),动态配置(包括权重,负载均衡)都可以做应用级别的配置:
上图是条件路由的配置,可以按照应用名,服务名两个维度来填写,也可以按照这两个维度来查询。
条件路由,标签路由和动态配置都采用了yaml格式的文本编写,其他的规则配置还是采用了表单的形式。
Dubbo2.6到Dubbo2.7,服务治理发生了比较大的变化,Dubbo Admin兼容两个版本的用法如下:
对于服务级别的配置,会按照Dubbo2.6(URL)和Dubbo2.7(配置文件)两种格式进行写入,保证Dubbo2.6的客户端能够正确读取,解析规则;
对于应用级别的配置,包括标签路由,只会按照Dubbo2.7的格式进行写入,因为Dubbo2.6无此功能,不需要做向前兼容;
Dubbo Admin只会按照Dubbo2.7的格式进行配置读取,因此,所有在Dubbo Admin上做的配置都可以被读到,但是之前遗留的,Dubbo2.6格式的URL无法被读取;
对于同一个应用或者服务,每种规则只能够配置一条,否则新的会覆盖旧的;
配置管理
配置管理也是配合Dubbo2.7新增的功能,在Dubbo2.7中,增加了全局和应用维度的配置,
以上是关于Dubbo生态再添新兵,许久未见的Dubbo Admin回来了!的主要内容,如果未能解决你的问题,请参考以下文章 Apache Dubbo 多语言体系再添新员:首个 Rust 语言版本正式发布 为什么都说Dubbo不适合传输大文件?苦思许久的我终于有了答案 Go版本入Dubbo生态一周年:已和Spring CloudgRPC互通