如何灵活的更改微服务容器运行时的堆内存大小及环境变量
2023-06-13 09:16:58 时间
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环境在发布时也不影响正式使用,不用发布时改来改去。
相关文章
- jenkins-5:参数化构建结合jenkinsfile对go服务进行容器化部署
- Laravel核心概念:服务容器(ServiceContainer),服务提供者(Service Provider),门面(Facade),契约(Contracts)
- Docker Compose容器编排
- Spring IoC容器与Bean管理
- 【说站】python Axes容器如何绘图
- 使用Docker容器快速部署常用服务
- Docker容器实战十二:容器安全性分析
- 【云安全最佳实践】 容器安全服务 TCSS助力上云无忧
- Grid布局 容器属性(二)
- Sentry + K8S 云原生分布式 Service Mesh 微服务实战,自建容器化中间件集群服务
- Java 服务 Docker 容器化最佳实践
- 大厂都在玩的容器技术到底是什么?
- 【Java AWT 图形界面编程】Container 容器 ① ( Container 容器类子类 | Component 组件类常用 API | Container 容器类常用 API )
- 为Docker容器中的服务配置固定容器IP教程
- 2023-04-09:使用 Golang 重写的 ffmpeg 示例encode_video.c,实现视频编码并将编码后的数据封装为容器格式,最终写入输出文件。
- 重磅!GitHub 推出容器镜像仓库服务!
- C++ STL array容器和普通数组的比较
- Docker 容器化部署Redis服务(dockerredis)
- Docker容器中部署Redis服务(dockerredis)
- 部署基于Docker容器实现Redis服务部署(dockerredis)
- 标题:构建 Docker 容器,体验 Redis 之美(dockerredis)
- 如何使用 Buildah 构建容器镜像
- Hyper-V:用于微软下一代云计算的容器技术
- 用 Portainer.io 来监控和管理 Docker 容器(2)
- 容器开发仍然要考虑 Linux 发行版吗?
- JS仿Flash动画放大/缩小容器