Dubbo 生态添新兵,Dubbo Admin 发布 v0.1

为了提高 Dubbo 里程碑版本2.7.0的使用体验,咱们于去年年中启动了 Dubbo Admin 的重构计划,并做为Dubbo生态的子项目,于近期发布了v0.1,重构后的项目在结构上的变化以下:html

  • 将后端框架从webx替换成spring boot
  • 前端采用Vue和Vuetify.js做为开发框架
  • 移除velocity模板
  • 集成swagger,提供api管理功能

当前版本的Dubbo Admin包含了以前版本中的绝大部分功能,包括服务治理,服务查询等,同时支持了Dubbo2.7中服务治理的新特性。前端

配置规范

因为在Dubbo2.7中,配置中心和注册中心作了分离,而且增长了元数据中心,所以Dubbo Admin的配置方式也作了更新,application.properties中的配置以下:web

admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://127.0.0.1:2181
admin.metadata.address=zookeeper://127.0.0.1:2181

也能够和Dubbo2.7同样,在配置中心指定元数据和注册中心的地址,以zookeeper为例,配置的路径和内容以下:spring

# /dubbo/config/dubbo/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

配置中内心的地址会覆盖掉本地application.properties的配置apache

功能介绍

功能上,主要延续了以前版本的功能,包括服务查询和服务治理,2.7版本在服务治理的功能上有了很大的改进,这些改进也大部分都会以Dubbo Admin做为入口来体现。后端

标签路由

标签路由是Dubbo2.7引入的新功能,配置以应用做为维度,给不一样的服务器打上不一样名字的标签,配置以下图所示:api

1548675129621_1f2f3f68_4f35_4105_97e2_c4a0d7dc62c8_jpeg

调用的时候,客户端能够经过setAttachment的方式,来设置不一样的标签名称,好比本例中,setAttachment(tag1),客户端的选址范围就在如图所示的三台机器中,能够经过这种方式来实现流量隔离,灰度发布等功能。服务器

应用级别的服务治理

在Dubbo2.6及更早版本中,全部的服务治理规则都只针对服务粒度,若是要把某条规则做用到应用粒度上,须要为应用下的全部服务配合相同的规则,变动,删除的时候也须要对应的操做,这样的操做很不友好,所以Dubbo2.7版本中增长了应用粒度的服务治理操做,对于条件路由(包括黑白名单),动态配置(包括权重,负载均衡)均可以作应用级别的配置:微信

1548675095660_2abe00e4_7a3c_4c49_8649_0cc81e00e324_jpeg

上图是条件路由的配置,能够按照应用名,服务名两个维度来填写,也能够按照这两个维度来查询。app

1548675169501_57b22613_ba3a_462b_b3ba_af34ea778589_jpeg

条件路由,标签路由和动态配置都采用了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中,增长了全局和应用维度的配置。

  • 全局配置:

1548675196442_4611bfd9_5077_4bd2_a2b1_ad89c5eefc13_jpeg

全局配置里能够指定注册中心,元数据中心的地址,服务端和客户端的超时时间等,这些配置在全局内生效。除了配置写入,也能够用来查看。若是使用zookeeper做为注册中心和元数据中心,还能够看到配置文件所在位置的目录结构。

  • 应用和服务配置 
    1548675223170_772fd97b_f49f_4cf6_be40_34355f8159a1_jpeg

应用级别的配置能够为应用或者应用内的服务指定配置,在服务维度上,须要区分提供者和消费者。dubbo.reference.{serviceName}表示做为该服务消费者的配置,dubbo.provider.{servcieName}表示做为该服务提供者的配置。优先级服务 > 应用 > 全局。其中注册中心和元数据中心的地址,只能在全局配置中指定,这也是Dubbo2.7中推荐的使用方式。

元数据和服务测试

元数据是Dubbo2.7中新引入的元素,主要的使用场景就在Dubbo Admin中,主要体如今两个地方:

  • 服务详情展现:

1548675234502_67cefa2f_e180_4715_a203_a98bf515fe4f_jpeg

跟以前版本相比,Dubbo2.7中增长了对服务方法完整签名的记录,所以服务详情中也增长了方法信息的详情,能够看到方法名,方法参数列表以及返回值信息。

  • 服务测试:

1548675056214_730b7a7b_d4af_4a57_ab3f_380c5afcdabb_jpeg

更重要的,元数据为服务测试提供了数据基础,能够在页面上调用真实的服务提供者,方便测试,也不须要为了调用服务去搭建一套Dubbo环境以及编写消费端代码。服务测试的详细使用方式可经过点击这里进行了解。

 

原文连接 更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

相关文章
相关标签/搜索