将Dubbo注册到Nacos,与DubboAdmin的部署
王有志,一个分享硬核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 项目:
# Linux
sh startup.sh -m standalone
# Windows
startup.cmd -m standalone
Tips:Nacos 默认账户密码是“nacos”。
切换 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=nacos
admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public
admin.config-center=nacos://127.0.0.1.232:8848?group=dubbo
admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo
接着是修改 Dubbo Admin 的端口号和 Dubbo 的 protocol 端口号:
#compress
server.port=8090
server.compression.enabled=true
server.compression.mime-types=text/css,text/javascript,application/javascript
server.compression.min-response-size=10240
#dubbo config
dubbo.application.name=dubbo-admin
dubbo.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 技术的金融摸鱼侠王有志,我们下次再见!
将Dubbo注册到Nacos,与DubboAdmin的部署的更多相关文章
- dubbo注册服务IP解析异常及IP解析源码分析
在使用dubbo注册服务时会遇到IP解析错误导致无法正常访问. 比如: 本机设置的IP为172.16.11.111, 但实际解析出来的是180.20.174.11 这样就导致这个Service永远也无 ...
- 阿里注册中心nacos使用整合Dubbo-原创
阿里注册中心nacos是今年开源的框架,一开始以为就是个zk.后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo.我想今年开源它也是别有用意 .(目前nacos0.7 ...
- 解决dubbo注册zookepper服务IP乱入问题的三种方式
最近做一个项目引入了dubbo+zookepper的分布式服务治理框架.在应用的发布的时候出现一个怪问题.zookepper服务是起在开发服务器192.168.23.180上.本机起应用服务提供者注册 ...
- 这个Dubbo注册中心扩展,有点意思!
今天想和大家聊聊Dubbo源码中实现的一个注册中心扩展.它很特殊,也帮我解决了一个困扰已久的问题,刚刚在生产中用了,效果很好,迫不及待想分享给大家. Dubbo的扩展性非常灵活,可以无侵入源码加载自定 ...
- 灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子
hello大家好呀,我是小楼. 作为一名基础组件开发,服务好每一位业务开发同学是我们的义务(KPI). 客服群里经常有业务开发同学丢来一段代码.一个报错,而我们,当然要微笑服务,耐心解答. 有的问题, ...
- ZooKeeper 集群的安装、配置---Dubbo 注册中心
ZooKeeper 集群的安装.配置.高可用测试 Dubbo 注册中心集群 Zookeeper-3.4.6 Dubbo 建议使用 Zookeeper 作为服务的注册中心. Zookeeper 集群中只 ...
- dubbo注册中心zookeeper出现异常 Opening socket connection to server 10.70.42.99/10.70.42.99:2181. Will not attempt to authenticate using SASL (无法定位登录配置)
linux下,zookeeper安装并启动起来了 DEMO时,JAVA控制台出现: INFO 2014-03-06 09:48:41,276 (ClientCnxn.java:966) - Openi ...
- Dubbo框架介绍与安装 Dubbo 注册中心(Zookeeper-3.4.6)
背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. • 单一应用架构 • 当网站流量很小时, ...
- 2016年工作中遇到的问题41-50:Dubbo注册中心奇葩问题,wifi热点坑了
41.获得JSON中的变量.//显示json串中的某个变量,name是变量名function json(json,name){ var jsonObj = eval(json); return jso ...
- 第二个视频作品《[SpringCloudAlibaba]微服务之注册中心nacos》上线了
1.场景描述 第二个视频作品出炉了,<[SpringCloudAlibaba]微服务之注册中心nacos>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. ...
随机推荐
- 安装MongoDB、及基本使用
1.MongoDB简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,基于分布式文件存储的数据库.是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构非常松散,是类似json ...
- 纯前端使用xlsx实现导出表格
列表数据纯前端使用xlsx实现导出功能 基础写法 let filename = "资产导出.xlsx"; 定义导出数据 let data = [ ["第一列", ...
- Windows屏幕解锁服务原理及实现(1)
https://github.com/zk2013/windows_remote_lock_unlock_screen 将生成的DLL注册至注册表 HKEY_LOCAL_MACHINE\SOFTWAR ...
- 继承 extends
首先是基础的继承关系,用extend就可以继承. 再者是继承的东西,包括:变量(也包括类变量).全部非私有的属性和方法(除了父类的构造方法) 注:构造方法 class C{ public C() { ...
- 在算数运算中,能否将 bool 值 true 视作 1?
true == 1; true + 1; If the destination type is bool, see 4.12. If the source type is bool, the valu ...
- 在循环内调用 size() 方法的开销大吗?
for (int i = 0; i < buildings.size(); i++) {} 和 int n = buildings.size(); for (int i = 0; i < ...
- 云原生时代崛起的编程语言Go并发编程实战
@ 目录 概述 基础理论 并发原语 协程-Goroutine 通道-Channel 多路复用-Select 通道使用 超时-Timeout 非阻塞通道操作 关闭通道 通道迭代 定时器-TimerAnd ...
- 试用「ChatGPT」几周之后
冷静下来,不吹不黑. 01 最近半年,互联网一款现象级的应用诞生:「ChatGPT」: 其火爆的程度,不输前面的羊了个羊: 最初了解到ChatGPT还是春节的时候,但那时网上的测评还没引起足够的好奇心 ...
- 揭秘Karmada百倍集群规模多云基础设施体系
摘要:本文结合Karmada社区对大规模场景的思考,揭示Karmada稳定支持100个大规模集群.管理超过50万个节点和200万个Pod背后的原理 本文分享自华为云社区<Karmada百倍集群规 ...
- 2021-12-10:64位的浮点数和64位的有符号整数,哪个能表示的数据个数多? A.整型多。 B.浮点型多。 C.与平台有关。 D.一样多。 来自qq群。
2021-12-10:64位的浮点数和64位的有符号整数,哪个能表示的数据个数多? A.整型多. B.浮点型多. C.与平台有关. D.一样多. 来自qq群. 答案2021-12-10: 答案选A. ...