环境
- MySQL 8
- JDK 8
- centos 7
nacos:1.4.1Spring cloud version:Hoxton.SR8Spring cloud alibaba version:2.2.5.RELEASE
1.启动nacos连接mysql报错
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
Public Key Retrieval is not allowed
传送门 ==> MySQL 8.0 Public Key Retrieval is not allowed解决方案
配置文件里mysql地址这里加上
allowPublicKeyRetrieval=true

2.nacos集群多出来一个eth0网卡的节点
我们分别在三台虚拟机里启动nacos,分别是221、223、225的机器。但是这里为什么会出现一个15的机器?
为什么变成了4个,并且节点元数据点开里面的信息是混乱的,缺失的。

配置三个节点,但是分别启动后却多出来一个节点。经过
ifconfig后查看到xxx.xxx.2.15是eth0的ip地址,而实际我应该用eth1的地址,那个才是NAT转发的静态ip地址(xxx.xxx.2.221、xxx.xxx.2.223、xxx.xxx.2.225),才可以被其它机器访问。而且导致了nacos的集群中leader和follower关系混乱
解决方案:
-
删掉
cluster.conf中新写入的xxx.xxx.2.15,保持集群依旧是三个节点 -
修改
application.properties文件每台虚拟机里的这个配置,都改成自己当前虚拟机的可外网访问的ip地址
nacos.inetutils.ip-address=你的虚拟机外网ip
-
停掉nacos并且
重启
正常的集群

产生原因:
nacos如果不指定本机的地址的话,会选择第一张网卡的ip地址
3.注意服务发现是discovery而不是config
很低级的错误,但是初学者容易忽视这块儿,可能会踩坑

之前的配置:
spring.cloud.nacos.server-addr: xxxx
注意:漏掉了discovey而且这里填写config的话,就是配置中心的地址了,而不是服务注册发现的地址
4.spring cloud 服务启动注册nacos日志无打印,且nacos无服务注册信息
坑!!!
按照nacos的官网案例,这三部曲
- 添加依赖
- 配置服务注册发现的地址
- 开启服务发现
@EnableDiscoveryClient
按理说配置地址对的话,至少日志会打印相关nacos的注册信息。但实际上不是

你的服务如果pom依赖仅仅依赖了spring-cloud-starter-alibaba-nacos-discovery
<dependencies>
<!-- nacos 客户端服务发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
你会发现启动日志如下:

并没有任何注册成功或者失败的日志信息。
并且,你去查看nacos,发现服务列表是空的

这一切的根本是,你没有加入springboot的基础依赖!!!比如:web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
加入后再观察日志


当然实际上,作为一个web服务,你的项目依赖可能并不会丢掉spring-boot-starter-web,所以基本不会遇到这个问题。但是如果是自己新手按照文档一步步学习这个案例,那么很有可能出现这个看起来简单但实际匪夷所思的问题。
5.nacos集群的话,服务注册地址怎么写?
server:
port: 8001
spring:
application:
name: order-service
cloud:
nacos:
discovery:
server-addr: nacos1的ip:8848,nacos2的ip:8848,nacos3的ip:8848
直接用,分隔即可,和eureka一致
本文档汇总了Nacos与SpringCloud配合使用时遇到的问题及解决办法,包括Nacos连接MySQL报错、集群节点异常、服务发现配置错误、日志无服务注册信息以及集群服务注册地址设置等。解决方案涉及修改配置文件、调整网络设置、检查依赖等,旨在帮助开发者避免和解决这些问题。

5万+





