SpringBoot整合Nacos集群报错,以及解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合Nacos集群报错,以及解决方案相关的知识,希望对你有一定的参考价值。
参考技术A这样部署会发现没有任何问题,进入页面nacos的主页也正常
我们会发现整个流程不会出现一点问题。
但是,一旦使用springboot去整合Nacos集群就会报错
错误信息
pom文件的配置信息
我们会发现stock-service register failed,在浏览器上访问这三个的Nacos服务器是没有问题,在这之前Nacos单机版整合也是没有问题的,问题只能出现的docker启动的Nacos容器上。会发现创建的Nacos容器填写的ip都是外部ip:port,但是创建的网段却是docker内部的网段,我们需要只能在同一网段的ip
发现访问nacos服务器的页面也是没有问题的
springboot整合也解决了
nacos集群搭建和使用
前言
最近在使用springboot整合dobbu,实现微服务,发现了阿里还有一个注册中心叫做nacos,因此,想要使用nacos作为dubbo的注册中心,在这里将分享如何搭建nacos集群。
下载
原理
nacos实际是用java开发的springboot项目,有两种启动模式:集群模式和standalone模式。standalone模式是这样启动的,
#Linux/Unix/Mac 下
sh startup.sh -m standalone
startup.sh和startup.cmd是在项目文件夹bin目录下的。
standalone模式使用的是内置数据库debay存放数据,因此,为了实现集群模式,那么就需要将集群内的信息使用共享数据库了。目前,据了解nacos只支持mysql数据库。
解压
将nacos-server-1.2.0.tar.gz文件解压,可以看到目录结构如下:
这里只展示bin和conf目录。
导入信息到mysql
conf目录下有个sql脚本,nacos-mysql.sql,执行这个文件就可以将数据导入mysql了。
修改配置
打开application.properties,该文件就是nacos的配置文件,数据库的配置也是写在这里。
# 指定数据源为Mysql
spring.datasource.platform=mysql
# 数据库实例数量
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
修改集群主机配置
修改conf/cluster.conf,添加集群主机ip:port
#it is ip
#example
localhost:8848
localhost:8849
localhost:8850
创建多个服务
将修改配置后的nacos服务复制两份,并修改项目启动端口号。端口号设置在配置文件application.properties中,nacos默认端口号是8848,另外两个服务的端口号改为8849、8850。
## Default web server port:
server.port=8848
### 第二个服务端口号
server.port=8849
### 第三个服务端口号
server.port=8850
启动服务
集群模式启动命令直接执行脚本,linux下与standalone模式相比缺少-m standalone参数。
#Linux/Unix/Mac 下
sh startup.sh
dubbo使用集群nacos
修改项目(springboot项目)中dubbo的配置,配置文件是application.properties为下面即可
dubbo.registry.address=nacos://127.0.0.1:8848?backup=127.0.0.1:8849,127.0.0.1:8850
控制台配置
由于有三台节点,因此,控制台需要使用nginx做代理和负载均衡,配置如下即可:
upstream nacos {
server 127.0.0.1:8848;
server 127.0.0.1:8847;
server 127.0.0.1:8850;
}
最后,就可以在控制台看到集群信息了,如下图:
总结
nacos搭建集群相比zookeeper还是简单点,只是将内置数据库改为共享数据库就行。
以上是关于SpringBoot整合Nacos集群报错,以及解决方案的主要内容,如果未能解决你的问题,请参考以下文章