记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖
Posted 高因咖啡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖相关的知识,希望对你有一定的参考价值。
spring cloud 配置中心 结合GIT , 可以运行时更新配置文件.发送指令让应用重新读取配置文件.
最近在测试服务器实现了一套,结果CPU 实用率暴增,使用docker compose启动 restart always 多节点的服务一直重启关闭重启关闭.
日志文件记录了一个异常: 国内国外搜了一遍都没有解决
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name ‘eurekaAutoServiceRegistration‘:
Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
直到有一个应用抛了一个端口被占用的异常后,才恍然大悟
原因如下,在当前配置文件中,application-test中的端口配置为:
#服务器参数配置
server:
port: 8060
max-threads: 2000
max-connections: 2000
一般情况下我们 docker cmd 或者 entrypoint 启动应用
命令为:
java -jar app.jar --spring.profiles.active=test --server.port=8060
在没有使用配置中心的时候,Spring 应用会根据命令行的参数的服务端口启动.
但是使用了配置中心,应用启动时去GIT 获取配置文件的时候,会把命令行的参数覆盖掉
解决办法就是:注释掉,或者不写,反正也没有必要写
#服务器参数配置
server:
# port: 8060
max-threads: 2000
max-connections: 2000
以上是关于记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud Config分布式配置中心的使用和遇到的坑