Spring Boot 2.1.8 + Dubbo 2.7.3 +ZooKeeper配置实践

网上看到很多教程,由于Dubbo 的升级,大多都过时了。本文记录笔者的实践。


1. ZooKeeper,

没有变化,略。

2. Dubbo 2.7.3

在POM 中,很多人还在使用老的ali 的依赖包和老的zk cleint 包。本人采用全新的apache Dubbo 依赖,详细如下:



<!-- Dubbo -->

<dependency>

<groupId>org.apache.dubbo</groupId>

<artifactId>dubbo</artifactId>

<version>${dubbo.version}</version>

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.apache.dubbo</groupId>

<artifactId>dubbo-spring-boot-starter</artifactId>

<version>${dubbo.version}</version>

</dependency>

<dependency>

<groupId>org.apache.curator</groupId>

<artifactId>curator-framework</artifactId>

<version>${curator-framework.version}</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-recipes -->

<dependency>

<groupId>org.apache.curator</groupId>

<artifactId>curator-recipes</artifactId>

<version>${curator-framework.version}</version>

</dependency>

<dependency>

<groupId>org.apache.dubbo</groupId>

<artifactId>dubbo-metadata-report-zookeeper</artifactId>

<version>${dubbo.version}</version>

</dependency>




3. Dubbo Admin

老版本是以war 包形式提供,新版直接是 spring Boot App。

https://github.com/apache/dubbo-admin

3.1 没有编译好直接用的 JAR, 需要自己编译 工程 “dubbo-admin-server” 得到 jar 包,然后直接运行即可,

3.2 默认8080 端口。 如果要改, 编辑 “application.properties”, 加入如下行:

server.port: 6868

3.3 如果zookeeper 有其他配置, 同样修改该文件:


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

#group

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


3.4. 重点来了, 配置好后,Admin 不能读取元数据。

报如下错误:

https://github.com/apache/dubbo-admin/issues/456

解决方法:

https://github.com/apache/dubbo-admin/commit/419c7d35c29482c024123628995e3855eab72f19#diff-faafa5ff0a309cfcdba8a5ca4f18954eL72

回滚如下代码,就正常了。

privatefinalstaticStringMETADATA_NODE_NAME="service.data";

returntoRootDir()+metadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.PATH)+

Constants.PATH_SEPARATOR+METADATA_NODE_NAME;


    3.5 如果有zookeeper 集群, 则如下配置:

参照:

https://github.com/apache/dubbo-admin/issues/461

admin.registry.address=zookeeper://ip:port?backup=ip:port,ip:port

#admin.config-center=zookeeper://127.0.0.1:2181

#admin.metadata-report.address=zookeeper://127.0.0.1:2181

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容