
王有志,一个分享硬核Java技术的互金摸鱼侠
加入Java人的提桶跑路群:共同富裕的Java人
本文是《从0开始学Dubbo》系列文章中应用篇的番外篇。
在这篇文章中我会和大家一起部署单机模式的Nacos,并将Dubbo的注册中心从Zookeeper迁移到Nacos上。另外,为了在只启动Dubbo服务提供者的场景下进行测试,我们会部署一个Dubbo Admin服务。
部署Nacos
Nacos的部署非常简单,可以下载Nacos源码编译后启动,或者直接使用Nacos官方提供的安装包。具体过程请参考官方文档:Nacos快速开始。
我是在IDEA中直接启动的Nacos,只需要稍微修改Nacos子模块consle的application.properties文件的一项鉴权相关的配置即可:
Nacos的启动类同样位于子模块console中:
到此,我们就可以在IDEA中启动Nacos服务了,正常启动后可以通过localhost:8848/nacos访问Nacos的Web管理端:
除了从IDEA中启动,也可以选择通过Maven命令打包后启动项目:
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
打包后的压缩包位于/nacos/distribution/target下,我这里打包的版本是2.2.1-RC-develop:
上传到服务器解压项目后,同样需要处理鉴权相关的配置,然后就可以正常启动Nacos项目:
# Linuxsh startup.sh -m standalone# Windowsstartup.cmd -m standalone
切换Nacos
Nacos部署成功后,我们就可以切换Dubbo服务的注册中心了,首先是在POM文件中引入dubbo-registry-nacos依赖(同时可以移除dubbo-dependencies-zookeeper-curator5依赖):
<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>3.2.2</version></dependency>
接着修改application.properties文件中注册中心的配置:
dubbo:registry:address: nacos://106.75.33.232:8848
至此注册中心的迁移就完成了,直接启动修改后的Dubbo项目,并打开Nacos的管理端,就可以看到我们的服务已经注册到了Nacos上:
部署Dubbo Admin
最后,我们来部署一个Dubbo Admin服务,用来在不启动服务使用方的场景下,测试服务提供方的服务。目前Dubbo Admin正在通过Go重构,因此我们需要将分支refactor-with-go切换到master(master为Java构建的分支,如果你能够熟练部署Go项目,可以不切换)。
Dubbo Admin需要修改的内容并不多,主要修改注册中心,Dubbo Admin的端口号,以及Dubbo的protocol端口号,首先是注册中心的配置,Dubbo Admin默认使用的注册中心是Zookeeper,我们修改为Nacos的配置:
# centers in dubbo2.7, if you want to add parameters, please add them to the url#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# nacos config, add parameters to url like username=nacos&password=nacosadmin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=publicadmin.config-center=nacos://127.0.0.1.232:8848?group=dubboadmin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo
接着是修改Dubbo Admin的端口号和Dubbo的protocol端口号:
#compressserver.port=8090server.compression.enabled=trueserver.compression.mime-types=text/css,text/javascript,application/javascriptserver.compression.min-response-size=10240#dubbo configdubbo.application.name=dubbo-admindubbo.registry.address=${admin.registry.address}
至此,我们就可以启动Dubbo Admin的服务了,Dubbo Admin的启动类在子模块dubbo-admin-server中:
启动后,我们可以看到如下Web管理端页面:
可以看到,Dubbo Admin提供了非常非常多的功能,不过我们这里主要使用的是服务测试的功能:
至于DUbbo Admin提供的其它功能该如何使用,就留给大家来自行探索了。
Tips:
- 生产环境中,一台服务器上通常只会部署一个服务,所以不存在端口号冲突;
- 同样的,可以使用Maven命令mvn clean package打包Dubbo Admin服务后启动;
- Dubbo Admin的默认账户密码是“root”。
如果本文对你有帮助的话,还请多多点赞支持。如果文章中出现任何错误,还请批评指正。最后欢迎大家关注分享硬核Java技术的金融摸鱼侠王有志,我们下次再见!
