如何靈活的更改微服務容器運行時的堆內存大小及環境變量 手把手教你將Eureka升級Nacos註冊中心

  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環境在發佈時也不影響正式使用,不用發佈時改來改去。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章