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文件解压,可以看到目录结构如下:


nacos集群搭建和使用

这里只展示bin和conf目录。


导入信息到mysql


conf目录下有个sql脚本,nacos-mysql.sql,执行这个文件就可以将数据导入mysql了。


修改配置


打开application.properties,该文件就是nacos的配置文件,数据库的配置也是写在这里。

# 指定数据源为Mysqlspring.datasource.platform=mysql
# 数据库实例数量db.num=1db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456


修改集群主机配置


修改conf/cluster.conf,添加集群主机ip:port

#it is ip#examplelocalhost:8848localhost:8849localhost: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集群报错,以及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

nacos集群搭建和使用

Spring Cloud Gateway整合Nacos实现服务路由及集群负载均衡

Nacos学习笔记 Nacos整合SpringBoot流程

Nacos学习笔记 Nacos整合SpringBoot流程

3.Nacos服务整合SpringBoot框架技术

SpringBoot整合Nacos注册中心