如何灵活的更改微服务容器运行时的堆内存大小及环境变量

文章介绍了如何在SpringBoot微服务中通过Dockerfile动态设置Java参数,以便在内存不足时无需重新打包即可调整。通过设置环境变量JAVA_OPTS,可以在容器运行时覆盖默认参数。此外,文章还提到在K8S中如何设置该变量以及如何通过环境变量指定微服务运行时的激活配置,例如切换不同的环境(如prd)。
摘要由CSDN通过智能技术生成

  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环境在发布时也不影响正式使用,不用发布时改来改去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值