如何灵活的更改微服务容器运行时的堆内存大小及环境变量
SpringBoot微服务打包容器启动运行时就会加载打包时设置的Jvm参数,当上线后监控到内存不足时需要调整参数时就要重新打包升级版本等一系列繁琐操作,那能不能只需要更改配置重启就能解决问题呢?答案是需要实践。
在手把手教你将Eureka升级Nacos注册中心一文中已经提到了如何使用Dockerfile命令来动态设置java参数。
这里着重说下,先看配置
<env> <JAVA_OPTS> -Xms700m -Xmx700m </JAVA_OPTS> </env> <cmd>java $JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/${project.build.finalName}-dump.hprof -jar /app/${project.build.finalName}.jar</cmd>
在容器打包时设置一个变量JAVA_OPTS,这里的变量会转化为Dockerfile中的一个环境变量,这样就可以通过改变外部的变量覆盖掉运行时内部默认的变量。
如在K8S管理器中设置此服务的JAVA_OPTS变量:
当然也可以通过环境变量指定微服务运行时激活的配置,如上图中的active,这里在K8S中指定为prd了,这样即使是代码中指定了dev环境在发布时也不影响正式使用,不用发布时改来改去。
作者:欢醉
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。