• dubbo admin 2.8.3版本使用


    博客转载:http://www.iocoder.cn/Dubbo/Admin/

    摘要: 原创出处 http://www.iocoder.cn/Dubbo/Admin/ 「芋道源码」欢迎转载,保留摘要,谢谢!



    1. 概述

    Dubbo Admin 是 Dubbo 的管理控制台,主要三部分功能:

    界面

    • 服务查询
    • 服务治理(包括 Dubbo 2.7 版本新增的治理规则)
    • 服务测试

    Dubbo Admin 采用前端后分离的方式开发:

    项目结构

    既可以按照标准的 Maven 方式进行打包与部署,也可以采用前后端分离的部署方式,方便开发。

    2. 快速入门

    本小节,我们来部署一个 Dubbo Admin 控制台,并对 Dubbo 服务进行管理。

    友情提示:如果胖友想要使用 Docker 部署 Dubbo Admin 控制台,可以看看 https://hub.docker.com/r/apache/dubbo-admin

    2.1 部署 Dubbo Admin

    因为 Dubbo Admin 并未提供已经编译好的 jar 包,所以我们需要自己动手。

    ① 执行 git clone https://github.com/apache/dubbo-admin.git 命令,将项目下载到本地。

    友情提示:如果网络比较“差”,可能需要一些时间哈。

    ② 修改 dubbo-admin-server/src/main/resources/application.properties 配置文件,主要是指定配置中心。内容如下:

    # Dubbo 各种中心的配置
    # centers in dubbo2.7
    admin.registry.address=zookeeper://127.0.0.1:2181
    admin.config-center=zookeeper://127.0.0.1:2181
    admin.metadata-report.address=zookeeper://127.0.0.1:2181

    # Dubbo Admin 管理员配置
    admin.root.user.name=root
    admin.root.user.password=root

    # Dubbo 分组相关配置
    admin.registry.group=dubbo
    admin.config-center.group=dubbo
    admin.metadata-report.group=dubbo

    admin.apollo.token=e16e5cd903fd0c97a116c873b448544b9d086de9
    admin.apollo.appId=test
    admin.apollo.env=dev
    admin.apollo.cluster=default
    admin.apollo.namespace=dubbo

    这里我们使用本地的 ZooKeeper 做为注册中心,所以无需更改。如果胖友使用远程的 ZooKeeper 服务,需要修改如下三个配置项:

    • admin.registry.address,注册中心地址。
    • admin.config-center,配置中心地址。
    • admin.metadata-report.address,元数据中心地址。

    友情提示:建议胖友参考《芋道 ZooKeeper 极简入门》文章,安装一个本地的 ZooKeeper 服务,和本文更加搭配。

    另外,考虑到安全性,建议修改 admin.root.user.name 和 admin.root.user.password 配置项,设置成自己想要的管理员账号与密码。

    ③ 执行 mvn clean package -Dmaven.test.skip=true 命令,开始构建 Dubbo Admin 项目。

    友情提示:如果网络比较“差”,可能需要一些时间哈。

    另外,添加 -Dmaven.test.skip=true 参数的原因是,貌似当前版本单元测试有点问题,老报连接不上 ZooKeeper 服务。

    ④ 执行如下命令,启动 Dubbo Admin 控制台。

    # 进入构建输出目录
    $ cd dubbo-admin-distribution/target/

    # 启动 Dubbo Admin 控制台
    # 注意,-0.2.0-SNAPSHOT 是根据版本来的,胖友记得看看噢。
    $ java -jar dubbo-admin-0.2.0-SNAPSHOT.jar

    ⑤ 使用浏览器,访问 http://127.0.0.1:8080/#/login 地址,进入 Dubbo Admin 登录界面。如下图所示:

    Dubbo Admin 登录界面

    使用默认的「root/root」账号密码进行登录。登录成功后,进入 Dubbo Admin 首页。如下图所示:

    Dubbo Admin 首页

    2.2 启动 Dubbo 服务

    《芋道 Spring Boot Dubbo 入门》「3. 注解配置」小节,我们搭建了一个 Dubbo 示例项目 lab-30-dubbo-annotations-demo。如下图所示:

    Dubbo 示例项目

    下面,我们使用 Dubbo Admin 将该 Dubbo 示例项目进行管理。

    ① 执行 ProviderApplication 启动服务提供者,执行 ConsumerApplication 启动服务消费者。

    ② 点击 Dubbo Admin 的「服务查询」菜单,可以查看到 UserRpcService 服务。如下图所示:

    服务查询 - 列表

    点击 UserRpcService 的「详情」按钮,可以看到 UserRpcService 服务的基础信息、服务信息(提供者 + 消费者列表)、元数据。如下图所示:

    服务查询 - 详情

    ③ 点击 Dubbo Admin 的「服务统计 -> 服务关系」菜单,可以看到服务之间的调用关系。如下图所示:

    服务统计 -> 服务关系

    ④ 点击 Dubbo Admin 的「服务统计 -> 服务统计」菜单,可以看 QPS、Response Time 等等统计信息。如下图所示:

    服务统计 -> 服务统计

    = = 不过艿艿测试总是在报错,所以这里就暂时不演示了。

    3. Swagger 支持

    Dubbo Admin 提供的 RESTful API 集成了 Swagger 组件,所以可以很方便的自动生成 API 文档。访问 http://127.0.0.1:8080/swagger-ui.html 地址,获得 Swagger 文档如下图所示:

    Swagger 文档

    4. 服务测试

    在 Dubbo 2.7 版本开始提供服务的元数据,所以 Dubbo Admin 就可以用通过 Dubbo 泛化调用的特性,实现在控制台中,调用服务提供者进行测试。如下图所示:

    服务测试 - 示例

    下面,我们来详细介绍服务测试的使用过程。

    4.1 接入元数据中心

    使用服务测试的前提,是服务提供者需要接入元数据中心。以 user-rpc-service-provider-02 项目举例子,需要添加 dubbo.metadata-report.address 配置项。如下图所示:

    配置文件

    这里,我们还是采用 ZooKeeper 作为元数据中心。

    修改完成后,重新执行 ProviderApplication 重启服务提供者。

    4.2 使用流程

    ① 打开 Dubbo Admin 的「服务测试」菜单,输入服务名进行搜索。如下图所示:

    服务测试 - 列表

    ② 点击 #get(...) 方法后面的「编辑」图标,进入该方法的测试界面。如下图所示:

    服务测试 - 方法

    ③ 填写参数,点击「执行」按钮,进行一次服务提供者的调用。如下图所示:

    服务测试 - 模拟测试

    4.3 实现原理

    胖友可以阅读《Dubbo Admin 服务测试功能》文章,进一步了解。

    5. 服务 Mock

    暂未开发,还在计划中...

    服务 Mock

    6. 服务治理

    友情提示:如下内容,基于《Dubbo 文档 —— 服务治理和配置管理》做改造。

    可以快速阅读,在有需要的时候,认真查看。

    服务治理主要作用,是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的。主要有以下几个功能:

    服务治理 —— 功能

    6.1 应用级别的服务治理

    在 Dubbo 2.6 及更早版本中,所有的服务治理规则都只针对服务粒度,如果要把某条规则作用到应用粒度上,需要为应用下的所有服务配合相同的规则、变更、删除的时候,也需要对应的操作,这样的操作很不友好。

    因此 Dubbo 2.7 版本中增加了应用粒度的服务治理操作,对于条件路由(包括黑白名单)、动态配置(包括权重,负载均衡)都可以做应用级别的配置:

    condition

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

    6.2 标签路由

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

    tag

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

    6.3 条件路由

    条件路由是 Dubbo 一直以来就有的功能,目前可以配置服务和应用两个维度,条件路由为 yaml 格式,具体的规则体以及各种适用场景,请参考这里

    6.4 黑白名单

    黑白名单是条件路由的一部分,规则存储和条件路由放在一起,为了方便配置所以单独拿出来,同样可以通过服务和应用两个维度,指定黑名单和白名单:

    blackList

    6.5 动态配置

    动态配置是和路由规则平行的另一类服务治理治理功能,主要作用是在不重启服务的情况下,动态改变调用行为,从 Dubbo2.7 版本开始,支持服务和应用两个维度的配置,采用yaml格式,界面如下:config具体的规则体说明请参考这里

    6.6 权重调节

    权重调节是动态配置的子功能,主要作用是改变服务端的权重,更大的权重会有更大的几率被客户端选中作为服务提供者,从而达到流量分配的目的:

    weight

    6.7 负载均衡

    负载均衡也是动态配置的子功能,主要作用是调整客户端的选址逻辑,目前可选的负载均衡策略有随机,轮训和最小活跃,关于各个策略的解释请参考这里

    7. 配置管理

    友情提示:如下内容,基于《Dubbo 文档 —— 服务治理和配置管理》做改造。

    可以快速阅读,在有需要的时候,认真查看。

    配置管理也是配合 Dubbo 2.7 新增的功能。在 Dubbo 2.7 中,增加了全局和应用维度的配置,分别在全局和应用范围内生效。其中,应用配置也可以指定该应用中的服务级别的配置,可以在控制台中查看,修改配置规则,默认展示全局维度的配置。

    7.1 全局配置

    config

    全局配置里可以指定注册中心、元数据中心的地址,服务端和客户端的超时时间等,这些配置在全局内生效。除了配置写入,也可以用来查看。

    如果使用 ZooKeeper 作为注册中心和元数据中心,还可以看到配置文件所在位置的目录结构。

    7.2 应用、服务配置

    appConfig

    应用级别的配置可以为应用或者应用内的服务指定配置。在服务维度上,需要区分提供者和消费者。

    • dubbo.reference.{serviceName} 表示作为该服务消费者的配置
    • dubbo.provider.{servcieName}表示作为该服务提供者的配置。

    其中注册中心和元数据中心的地址,只能在全局配置中指定,这也是 Dubbo 2.7 中推荐的使用方式。

    并且,优先级:服务配置 > 应用配置 > 全局配置。

    666. 彩蛋

    暂无彩蛋,用就完事了!

  • 相关阅读:
    链表
    java之Continue解析
    java之break解析
    数据库(Mysql)之count(column),count(1),count(*)用法
    数据结构(java语言描述)串与数组——稀疏矩阵的三元组表存储
    数据结构(java语言描述)串与数组——文件加解密
    数据结构(java语言描述)——串数组(n阶魔方)
    数据结构(java语言描述)模式匹配——KMP算法
    数据结构(java语言描述)模式匹配——Brute-Force(BF)算法
    java常见的软件包
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/13595885.html
Copyright © 2020-2023  润新知