点击蓝色“程序猿DD”关注我哟

来源:阿里巴巴中间件

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

  • 将后端框架从Webx替换成Spring Boot

  • 前端采用Vue和Vuetify.js作为开发框架

  • 移除Velocity模板

  • 集成Swagger,提供API管理功能

当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,例如服务治理和服务查询等,同时,也支持了Dubbo2.7中服务治理的新特性「传送门」

Dubbo Admin作为独立项目发布的考虑

Dubbo Admin 控制台和Dubbo核心功能的耦合度比较低,功能上的差异也比较大,部署的形态以及各自的发布节奏也不太一样;Dubbo是作为进程的运行时依赖,而控制台需要有独立的Server部署。因此,我们将 Dubbo Admin 作为独立的项目在社区进行发布。

配置规范

由于在Dubbo2.7中,配置中心和注册中心做了分离,并且增加了元数据中心,因此Dubbo Admin的配置方式也做了更新,application.properties中的配置如下:

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

也可以和Dubbo2.7一样,在配置中心指定元数据和注册中心的地址,以ZooKeeper为例,配置的路径和内容如下:

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

配置中心里的地址会覆盖掉本地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中,增加了全局和应用维度的配置,

? 全局配置

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

? 应用和服务配置

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

  • 元数据和服务测试

元数据是Dubbo2.7中新引入的元素,主要的使用场景就在Dubbo Admin中,主要体现在服务详情展示和服务测试这两个地方:

?服务详情展示

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

?服务测试

更重要的,元数据为服务测试提供了数据基础,可以在页面上调用真实的服务提供者,方便测试,也不需要为了调用服务去搭建一套Dubbo环境以及编写消费端代码。

本文作者:子观,社区昵称min,Apache Dubbo Commiter,阿里巴巴高级开发工程师,负责 Dubbo Admin 项目的开发和社区维护。

号外:最近整理了之前编写的一系列内容做成了PDF,关注我并回复相应口令获取:

001 :领取《Spring Boot基础教程》

- 002 :领取《Spring Cloud基础教程》

更多内容陆续奉上,敬请期待 

- END -

 近期热文:

  • 这些好用的 Chrome 扩展,你值得拥有!

  • 使用Oauth2实现微服务的安全保护

  • 为什么美国程序员工作比中国程序员工作轻松、加班少?

  • Spring Cloud Alibaba 基础教程整理

  • 我为啥不看好ServiceMesh

  • 敏捷团队的病与药

  • 在前后端分离的路上承受了多少痛?

  • 中台是个什么鬼?

2019

与大家聊聊技术人的斜杠生活

看完,赶紧点个“好看”鸭

点鸭点鸭

↓↓↓↓

Dubbo 管理能力弱?Dubbo Admin 发布 v0.1 助力服务管理能力!相关推荐

  1. Dubbo Admin 发布 v0.1;VMware 或与微软放下恩怨展开合作

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.Dubbo Admin 发布 v0.1 为了提升 Dubbo 里程碑版本2. ...

  2. ITSM | 权威指南发布,高速IT服务管理团队是什么样子的?

    当Netflix正在打造流媒体平台时,还有人在营业厅里为一张网卡而烦恼.当Craig Newmark创建免费分类广告网站时,报社的网络管理员最关心的还是重启电子邮件服务器.当数字化转型成为一道必答题, ...

  3. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )...

    以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu  (with sysv-rc-conf or sysvconfig) 立即启动/停止某服 ...

  4. 社会管理网格化 源码_全市社会治理网格化服务管理工作调研

    关注我们获得更多精彩内容 导语: 为了解全市社会治理网格化服务管理工作开展情况和网格队伍建设情况,2020年8月4日至8月21日,市社会治理网格化服务管理中心工作人员,先后到东营区.河口区.垦利区.广 ...

  5. 惠普发布软件定义存储 助力提升虚拟化能力

    10月15日,惠普宣布向包括戴尔.IBM.联想以及全新的惠普ProLiant Gen9服务器在内的,所有采用英特尔®至强®处理器E5 v3的服务器免费提供1TB的惠普StoreVirtual虚拟存储设 ...

  6. sql管理器指定服务器名字,如何修改sql server 服务管理器 服务器名称

    重新命名服务器的过程非常简单.你所需要做的就是给服务器改名,就像平时为Windows NT或Windows 2000 Server改名那样.重新启动计算机,然后系统会给出一个出错信息:"安装 ...

  7. 【Linux】_面试题之权限、ACL、磁盘空间管理、VDO、SELinux、逻辑卷、服务管理、防火墙策略、故障修复i

    1 如何禁止用户harry对/opt/private目录有任何权限,但不影响其他用户对此目录的访问 [root@server0 ~]# mkdir /opt/private [root@server0 ...

  8. MSE 微服务治理发布企业版,助力企业构建完整微服务治理体系

    作者:十眠.流士 微服务(MicroServices) 架构是一把双刃剑,随着微服务架构复杂化,在大规模之下,再小的问题都会牵一发而动全身,因此微服务架构带来的效率.稳定性问题很可能会远大于微服务本身 ...

  9. ManageEngine 详解IT服务管理(ITSM)流程五阶段

    ManageEngine认为,基于ITIL框架,ITSM流程通常包括五个阶段: 1.服务战略阶段(Service Strategy) 这个阶段是构建组织的ITSM流程的基础或框架.它涉及到定义组织能够 ...

最新文章

  1. ClickHouse最详细的入门教程(一):部署运行
  2. 总是想逃避不想去面对(又是发牢骚的一天)
  3. stm32cubemx中文_用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
  4. Map四种获取key和value值的方法,以及对map中的元素排序
  5. Centos7安装Docker教程
  6. SpringBoot2.0 基础案例(06):引入JdbcTemplate,和多数据源配置
  7. struts 2.3.8备忘
  8. InfoPath 教程
  9. 基于JSP的图书销售管理系统
  10. java web 使用 Freemarker 导出word,zip包导出多个word
  11. 一文了解Java隐式类型转换
  12. mysql安装版要选择_mysql 安装版
  13. C语言编程从键盘输入n值
  14. 超大模型分布式训练DeepSpeed教程
  15. 夜天之书 #78 共建的神话
  16. 区块链投资人李明轩:区块链通过多中心化机制解决传统互联网问题|筱静观察
  17. java笔记从基础到高级完整版
  18. 基于无人机的移动边缘计算网络研究(Matlab代码实现)
  19. java sql语句格式化_显示和格式化SQL语句
  20. 诺基亚3款新机亮相,都是反潮流复古风格,最后一款可以砸核桃

热门文章

  1. docker 不使用缓存重建镜像
  2. linux 大量 root@notty 进程由来
  3. Linux进程在后台运行的几种方法
  4. linux给普通用户sudo权限
  5. DDoS CC 攻防
  6. 解决debian apt-get upgrade 错误triggers ci file contains unknown directive `interest-noawait'
  7. 排序算法--睡眠排序
  8. 鸟哥的Linux私房菜(基础学习,服务器架设)
  9. Linux下基于socket多线程并发通信的实现
  10. 对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结