在日常工作中,经常遇到许多文件需要配置系统参数信息,造成很多的人力浪费。于是,去年年初我自己提了个优化建议,希望能将分散在各个配置文件及数据库表中的应用级参数统一到一处,进行集中管理。以实现参数和代码的分离,防止发生参数信息覆盖,同时也能降低维护人员人为操作失误造成的版本部署错误,进一步保证了生产系统的安全稳定。另外,还能提高UCD部署效率,减少人工干预。领导采纳了该建议,并让我负责该任务的实施。
经过多轮的讨论分析,我们最终确定的参数部署方案是采取一台主机对应部署一份参数配置的方式来实施。在各个主机对应产品根目录下新建sysConfig目录,再在sysConfig目录下按主机名hostname建立文件夹,然后在各个文件夹里添加存放参数信息的配置文件,如sysEnv.properties。各个配置文件里配置包括该主机本身的参数信息,及该主机与外部的连接参数,访问自身中间件的连接参数等。
部署方案讨论的过程中,我们确立了参数改造的范围,主要包括MQ、CICS、FTP、C:D等中间件参数及数据库连接、根目录等。同时还梳理出了所有涉及到参数信息的配置文件及数据库表。针对各个不同的参数变量,我们制定了《应用级技术参数命名规范》,以便于后期在团队内其他产品的推广。
完成上述工作之后,便是具体代码实现的环节。改造的代码主要包括两类,一类是XML文件,另一类是数据库表。针对XML文件,我们将XML文件中参数用变量替代,并修改服务的启动脚本以读入sysEnv.properties里的参数信息,如果XML中有数据库配置信息,还需在该文件中引入JAVA org.springframework.beans.factory.config.PropertyPlaceholderConfigurer,以读入参数信息。针对数据库表,将表中参数也用变量替代,并修改相应调用的JAVA程序,以正确读入参数信息。
看着自己主导的任务产生效率,带来便利是件开心和很有成就的事情,希望接下来的工作中继续保持这种思考。