Dubbo 如何查看元数据中心中的数据(Dubbo 2.7.X)

dubbo中元数据是啥?

元数据就是描述数据的数据,比如服务的名称,服务地址,方法列表,方法参数,服务版本等等。

上一篇介绍了如何去部署我们新版本的Dubbo Admin(2.7),这篇主要说下怎么去查看注册中心中的数据。
新版的Dubbo Admin将注册中心拆分出来,元数据独立出来,可以使用zk,redis等。如果dubbo用的还是2.7之前的,那么在新版Admin中是看不见元数据的。
如果需要看到元数据,可以看看上一篇文章。最终效果如下:
在这里插入图片描述
获取元数据示例

com.demo.demoapi.service.providers.DemoService 是我写的一个demo。里面有个getMetadata方法,是用来获取DemoService的元数据信息的,
通过dubbo admin 测试接口或者通过接口调用都可以获取到元数据信息。如下:
在这里插入图片描述

接口调用获取:
在这里插入图片描述
获取元数据代码分析

消费者代码
在这里插入图片描述

@RequestMapping("/getMetadata")
public String getMetadata() {
    String interfaceName = demoService.getClass().getInterfaces()[1].getName();
    return demoService.getMetadata(interfaceName);
}

api代码
在这里插入图片描述

String getMetadata(String interfaceName);

提供者代码
在这里插入图片描述

@Override
public String getMetadata(String interfaceName) {
    CuratorFramework client = null;
    try {
        client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", new ExponentialBackoffRetry(1000, 3));
        client.start();
        String path = "/dubbo/metadata/" + interfaceName + "/provider/providers";
        if (client.checkExists().forPath(path) == null) {
            return null;
        }
        String metadata = new String(client.getData().forPath(path));
        return metadata;
    } catch (Exception ex) {
        return "未获取到数据源";
    } finally {
        if (client != null) {
            client.close();
        }
    }
}

核心代码也看出了了,就是涉及到 CuratorFramework这块的,Curator就是一套zookeeper的客户端框架,相当于封装了一层,让开发者操作zk更方便,不用管
太多底层的东西。具体可以看下 Curator的 说明。这里代码就是创建一个zk客户端,然后获取dubbo/metadata节点下相应服务的数据。
当然如果不想自己写代码,也可以用客户端软件来直接查看,比如:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值