buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

项目主干分支的server.sh被“覆盖”了?一个配置,解除烦恼

我司项目利用springboot搭建,应用在部署到各环境后,程序启动命令靠的是我们在工程里配置的 scripts/server.sh。这个server.sh里最重要的东西是程序启动的jvm内存参数配置。

再一点要说的是,这个server.sh并没有区分环境,这一点对于我们各个部署环境,尤其是本地的开发环境及测试环境来说,很不优雅,因为我们本地环境资源有限, 加上本地环境并不需要太大的jvm内存配置,所以,我们通常会把本地环境的jvm配置得小一些。

但是,but,如果不小心把修改后的内容push到开发分支进而再merge到release/master分支,那估计会痛痛痛。

 

 

恰昨天晚上,公元2022年8月23日19时许,墨菲定律应验了,有同学反映,生产环境bosskg系统的bosskg-client-api出现OOM了,一检查,发现,它的这个启动文件参数被修改成测试环境的 -Xms512M -Xmx512M了。 赶紧修正jvm参数,联系运维哥哥给予修复。

 

要追责要惩罚?

没必要!

我们设计得不合理,单单依靠靠约束真的是太苍白无力了。

 

痛定思痛吧, 亡羊补牢,犹未晚矣。

 

只要思想不滑坡,办法总比困难多。今天,在经过王杰、红洁、小师诸多积极分子的讨论后,本着开发、运维最小改动的原则,很快敲定了改进方案。

解决办法也很简单。

step1:assembly.xml做如下变更:

<fileSet>
    <directory>scripts/${package.environment}</directory>
    <outputDirectory>/bin</outputDirectory>
</fileSet>
<fileSet>
    <directory>scripts</directory>
    <outputDirectory>/bin</outputDirectory>
</fileSet>

其中,package.environment是项目pom.xml里profiles里定义的节点属性名字。

 

 

 

step2:scripts目录下添加prod/server.sh

这样就能把生产环境单拎出来了。当然,如果要区分uat或者test、fat、dev,那就创建uat/server.sh或者test/server.sh、fat/server.sh、dev/server.sh。不过呢,眼前当下现阶段,除了uat还可考虑以外,其他环境都用默认的server.sh即可。

 

一图以明之,图样图森破:

 

 

 

打出来的zip程序包,bin/server.sh截图(样子跟之前一样一样滴):

 

 

新的人教版小学教材封面及插图出炉了,简直不要太美!我有一箩筐关于赞美的词汇,中国风、时代感、精气神、阳光、向上、愉悦、清新雅正、简洁大方...

 

posted on 2022-08-24 21:37  buguge  阅读(61)  评论(0)    收藏  举报