今天遇到一个很有意思的问题:Nacos工作的好好的,一运行程序,nacos就自动stopped了。
首先日志排查,linux命令:
docker logs nacos
初步怀疑是nacos启动后资源不足,但是日志里没有OutOfMemoryError等错误,但是日志里有这么一句:
2024-03-08 22:07:25,713 ERROR Application run failed
Nacos Server did not start because dumpservice bean construction failure : No DataSource set
百度了一下发现是mysql配置文件出了问题,mysql8.0之后的版本, 需要在官网文档配置mysql的基础上加上mysql时区的设置。
像这样:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/db_spzx?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
运行程序后报了新的错误:
Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
依旧是百度了一下,发现nocos不仅需要配置中心地址,还得配置服务注册中心的地址。像这样:
spring:
application:
name: simonf
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
加入了服务注册中心的地址重启项目,运行成功!