Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何配置dubbo.configcenter #342

Closed
skyjilygao opened this issue Mar 22, 2019 · 20 comments
Closed

如何配置dubbo.configcenter #342

skyjilygao opened this issue Mar 22, 2019 · 20 comments

Comments

@skyjilygao
Copy link

skyjilygao commented Mar 22, 2019

刚开始学习dubbo,有些不太明白。请问怎么配置dubbo.configcenter,才能看到元数据呢?
我在这里看到说明

dubbo.configcenter 推荐使用,配置中心地址,比如dubbo.configcenter="zookeeper://127.0.0.1:2181" 需要在配置中心中,配置注册中心和元数据中心地址配置格式如下: zookeeper path: /dubbo/config/dubbo/dubbo.properties content: dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

但不是很明白具体配置的文件在哪。麻烦告知下,谢谢

@kezhenxu94
Copy link
Member

@skyjilygao 就是在 ZK 上创建一个节点 /dubbo/config/dubbo/dubbo.properties , 并设置其内容为:

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

项目第一次启动调试的时候, 如果 ZK 没有这个配置, 会看不到元数据, 可以在 org.apache.dubbo.admin.config.ConfigCenter 中添加以下代码来创建这个节点(也可以通过其他方式):

    @PostConstruct
    public void init() throws Exception {
        CuratorFramework zkClient = CuratorFrameworkFactory.builder().
                connectString("127.0.0.1:2181").
                retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
        zkClient.start();

        if (zkClient.checkExists().forPath("/dubbo/config/dubbo/dubbo.properties") == null) {
            zkClient.create().creatingParentsIfNeeded().forPath("/dubbo/config/dubbo/dubbo.properties");
        }
        zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties", ("dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
                "dubbo.metadata-report.address=zookeeper://127.0.0.1:2181").getBytes());
    }

类似这样:
image

如果要提交 PR, 记得不要提交这段代码 :)

@skyjilygao
Copy link
Author

@kezhenxu94 谢谢你的回答,我按照你说的做了。加了那段代码。在amdin后台配置管理也显示了配置。如下:
image
但是我在服务查询中点击服务详情还是不显示元数据。如下:
image
我在dubbo-admin的application.properties中配置了dubbo.configcenter="zookeeper://127.0.0.1:2181" 也不行。
请问是还要在其他地方配置吗?谢谢

@kezhenxu94
Copy link
Member

@skyjilygao 你的Dubbo提供者是2.7版本的吗

@kexianjun
Copy link
Member

@skyjilygao 元数据只有2.7及以上的版本支持,另外按照你这个配置,provider 端也要配置

dubbo.configcenter="zookeeper://127.0.0.1:2181

如果还不行,麻烦把你完整的 provider 链接发一下

@skyjilygao
Copy link
Author

@kezhenxu94 是在提供者端依赖对吧,
image
之前用的2.6.6,改用这个再启动的时候报错,总是找不到
ClassNotFoundException: com.alibaba.dubbo.common.Version
但是也没地方引用啊,很奇怪。
请问你有遇到过吗?

@skyjilygao
Copy link
Author

@kexianjun 换成2.7,起不来了居然。
依赖:
image
报错信息:
image
请问你有遇到过吗?

@kezhenxu94
Copy link
Member

@kexianjun 换成2.7,起不来了居然。
依赖:
image
报错信息:
image
请问你有遇到过吗?

@skyjilygao 2.7 以后包名从 com.alibaba 改成 org.apache 了, 代码要做相关修改, 或者引入兼容包

@skyjilygao
Copy link
Author

@kezhenxu94 我改了。
image
因为就是一个demo,所以就引了一个@service注解,其他地方没有。
然后你说的这个兼容包,是哪个?能告诉一下吗?

@kezhenxu94
Copy link
Member

@kezhenxu94 我改了。
image
因为就是一个demo,所以就引了一个@service注解,其他地方没有。
然后你说的这个兼容包,是哪个?能告诉一下吗?

把 demo 项目上传到GitHub吧

@skyjilygao
Copy link
Author

@kezhenxu94 好的好的,谢谢。
这个是地址:https://github.com/skyjilygao/dubbo-parent.git
我在依赖有这个,有没有可能是这个导致的。

   <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.1-SNAPSHOT</version>
    </dependency>

麻烦看下,谢谢。

@skyjilygao
Copy link
Author

@kezhenxu94 我把这个dubbo-spring-boot-starter依赖去了就能起来了。但是不知道咋回事,后台看不到服务了。

@skyjilygao
Copy link
Author

@kezhenxu94 可以了。还是依赖dubbo-spring-boot-starter的问题。改成以下依赖就不报错了。

   <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.7.0</version>
    </dependency>

然后元数据也出来了。
谢谢!

@wendongbao
Copy link

为什么我找不到 这个jar包<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.0</version> </dependency>

@skyjilygao
Copy link
Author

@wendongbao 是不是依赖有问题,可以把mvn库里的删除,重新依赖。这是依赖地址:https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter/2.7.0

@bosiam
Copy link

bosiam commented Apr 8, 2019

要想使用dubbo admin 中的服务测试功能,provider和admin 中的group只能是默认的dubbo ?
如果自定义分组的话,元数据会找不到?

@geekvic
Copy link

geekvic commented May 23, 2019

跟楼上同问,dubbo admin中的测试和元数据不支持自定义group么?我用默认的dubbo分组可以显示,自定义的不行。

@independenter
Copy link

image
是在这里配置哦

@nobug0929
Copy link

@skyjilygao就是在ZK上创建一个节点/dubbo/config/dubbo/dubbo.properties ,并设置其内容为:

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

项目第一次启动调试的时候,如果ZK没有这个配置,会看不到元数据,可以在org.apache.dubbo.admin.config.ConfigCenter中添加以下代码来创建这个节点(也可以通过其他方式):

    @PostConstruct 
    public  void init()抛出异常 {
         CuratorFramework zkClient =  CuratorFrameworkFactorybuilder()。
                connectString(“ 127.0.0.1:2181 ”)。
                retryPolicy(新 ExponentialBackoffRetry10003)) 。建立(); 
        zkClient 。开始(); 如果(zkClientcheckExists() 。 forPath( “

        /dubbo/config/dubbo/dubbo.properties “)==  空){ 
            zkClient 。创建() 。 creatingParentsIfNeeded() 。 forPath( ” /dubbo/config/dubbo/dubbo.properties “); 
        } 
        zkClient 。使用setData() 。 forPath(“/ dubbo/config/dubbo/dubbo.properties ”,(“ dubbo.registry.address = zookeeper//127.0.0.1:2181 \ n ”  + dubbo.metadata-report.address = zookeeper//127.0 .0.1:2181 “)。 getBytes());
    }

类似这样:
图片

如果要提交PR,记得不要提交这段代码:)

ZK哪里加这个节点那?

@Kimi909
Copy link

Kimi909 commented Aug 15, 2019

刚开始学习dubbo,有些不太明白。请问怎么配置dubbo.configcenter,才能看到元数据呢?
我在这里看到说明

dubbo.configcenter 推荐使用,配置中心地址,比如dubbo.configcenter="zookeeper://127.0.0.1:2181" 需要在配置中心中,配置注册中心和元数据中心地址配置格式如下: zookeeper path: /dubbo/config/dubbo/dubbo.properties content: dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

但不是很明白具体配置的文件在哪。麻烦告知下,谢谢
你好,这个问题解决了吗,我也碰到了,想请教下

@ljxcolin
Copy link

@ kezhenxu94谢谢你的回答,我按照你说的做了。加了那段代码。在amdin后台配置管理也显示了配置。如下: 但是我在服务查询中点击服务详情还是不显示元数据。如下: 我在dubbo-admin的application.properties中配置了dubbo.configcenter =“ zookeeper://127.0.0.1:2181”也不行。 请问是还要在其他地方配置吗?谢谢
图片

图片

@kezhenxu94 谢谢你的回答,我按照你说的做了。加了那段代码。在amdin后台配置管理也显示了配置。如下:
image
但是我在服务查询中点击服务详情还是不显示元数据。如下:
image
我在dubbo-admin的application.properties中配置了dubbo.configcenter="zookeeper://127.0.0.1:2181" 也不行。
请问是还要在其他地方配置吗?谢谢

我操作的情况和你一样,按照@kezhenxu94的说明进行操作后同样不能出现原数据,后来在服务提供端加入配置dubbo.metadata-report.address=zookeeper://127.0.0.1:2181重启就可以了。另外说明:dubbo.config-center=zookeeper://127.0.0.1:2181不能在服务端配置,会报String不能转为ConfigCenterBean异常,使用的dubbo版本为2.7.3。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants