码迷,mamicode.com
首页 > 编程语言 > 详细

记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖

时间:2017-09-02 12:09:05      阅读:4246      评论:0      收藏:0      [点我收藏+]

标签:this   结果   服务器   发送   端口   ram   str   国外   spring   

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 配置中心的坑,命令行端口参数无效,被覆盖

标签:this   结果   服务器   发送   端口   ram   str   国外   spring   

原文地址:http://www.cnblogs.com/sweetchildomine/p/7466094.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!