封面:将Dubbo注册到Nacos,与Dubbo Admin的部署.png

王有志,一个分享硬核Java技术的互金摸鱼侠
加入Java人的提桶跑路群:共同富裕的Java人

本文是《从0开始学Dubbo》系列文章中应用篇的番外篇。
在这篇文章中我会和大家一起部署单机模式的Nacos,并将Dubbo的注册中心从Zookeeper迁移到Nacos上。另外,为了在只启动Dubbo服务提供者的场景下进行测试,我们会部署一个Dubbo Admin服务。

部署Nacos

Nacos的部署非常简单,可以下载Nacos源码编译后启动,或者直接使用Nacos官方提供的安装包。具体过程请参考官方文档:Nacos快速开始
我是在IDEA中直接启动的Nacos,只需要稍微修改Nacos子模块consle的application.properties文件的一项鉴权相关的配置即可:
图1:Nacos的鉴权配置.png
Nacos的启动类同样位于子模块console中:
图2:Nacos的启动类.png
到此,我们就可以在IDEA中启动Nacos服务了,正常启动后可以通过localhost:8848/nacos访问Nacos的Web管理端:
图3:Nacos的管理端.png
除了从IDEA中启动,也可以选择通过Maven命令打包后启动项目:

  1. mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

打包后的压缩包位于/nacos/distribution/target下,我这里打包的版本是2.2.1-RC-develop:
图4:编译后的Nacos.png
上传到服务器解压项目后,同样需要处理鉴权相关的配置,然后就可以正常启动Nacos项目:

  1. # Linux
  2. sh startup.sh -m standalone
  3. # Windows
  4. startup.cmd -m standalone

Tips:Nacos默认账户密码是“nacos”。

切换Nacos

Nacos部署成功后,我们就可以切换Dubbo服务的注册中心了,首先是在POM文件中引入dubbo-registry-nacos依赖(同时可以移除dubbo-dependencies-zookeeper-curator5依赖):

  1. <dependency>
  2. <groupId>org.apache.dubbo</groupId>
  3. <artifactId>dubbo-registry-nacos</artifactId>
  4. <version>3.2.2</version>
  5. </dependency>

接着修改application.properties文件中注册中心的配置:

  1. dubbo:
  2. registry:
  3. address: nacos://106.75.33.232:8848

至此注册中心的迁移就完成了,直接启动修改后的Dubbo项目,并打开Nacos的管理端,就可以看到我们的服务已经注册到了Nacos上:
图5:将Dubbo服务注册到Nacos.png

部署Dubbo Admin

最后,我们来部署一个Dubbo Admin服务,用来在不启动服务使用方的场景下,测试服务提供方的服务。目前Dubbo Admin正在通过Go重构,因此我们需要将分支refactor-with-go切换到master(master为Java构建的分支,如果你能够熟练部署Go项目,可以不切换)。
Dubbo Admin需要修改的内容并不多,主要修改注册中心,Dubbo Admin的端口号,以及Dubbo的protocol端口号,首先是注册中心的配置,Dubbo Admin默认使用的注册中心是Zookeeper,我们修改为Nacos的配置:

  1. # centers in dubbo2.7, if you want to add parameters, please add them to the url
  2. #admin.registry.address=zookeeper://127.0.0.1:2181
  3. #admin.config-center=zookeeper://127.0.0.1:2181
  4. #admin.metadata-report.address=zookeeper://127.0.0.1:2181
  5. # nacos config, add parameters to url like username=nacos&password=nacos
  6. admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public
  7. admin.config-center=nacos://127.0.0.1.232:8848?group=dubbo
  8. admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo

接着是修改Dubbo Admin的端口号和Dubbo的protocol端口号:

  1. #compress
  2. server.port=8090
  3. server.compression.enabled=true
  4. server.compression.mime-types=text/css,text/javascript,application/javascript
  5. server.compression.min-response-size=10240
  6. #dubbo config
  7. dubbo.application.name=dubbo-admin
  8. dubbo.registry.address=${admin.registry.address}

至此,我们就可以启动Dubbo Admin的服务了,Dubbo Admin的启动类在子模块dubbo-admin-server中:
图6:Dubbo Admin的启动类.png
启动后,我们可以看到如下Web管理端页面:
图7:Dubbo Admin的功能.png
可以看到,Dubbo Admin提供了非常非常多的功能,不过我们这里主要使用的是服务测试的功能:
图8:Dubbo Admin的测试功能.png
至于DUbbo Admin提供的其它功能该如何使用,就留给大家来自行探索了。
Tips

  • 生产环境中,一台服务器上通常只会部署一个服务,所以不存在端口号冲突;
  • 同样的,可以使用Maven命令mvn clean package打包Dubbo Admin服务后启动;
  • Dubbo Admin的默认账户密码是“root”。

如果本文对你有帮助的话,还请多多点赞支持。如果文章中出现任何错误,还请批评指正。最后欢迎大家关注分享硬核Java技术的金融摸鱼侠王有志,我们下次再见!