0. 配置信息

在系统启动时,程序会通过不同的配置方案,主动获取配置信息,以完成系统的初始化工作。

因此,配置信息的管理是一件非常重要的事情。

1. 将配置信息写死在业务代码中

该策略有以下几个特点:

配置信息与源码揉在一起,没有进行分离;在编译前需要手工修改源码;不同环境所使用的 class 文件不同;不同环境所部署的 war 包不同;

由于系统可能会被部署在不同的环境中(如开发环境、测试环境、生产环境等 ), 但不同环境之间存在的差异性 (如各个环境的URL不同、账号/密码不同、单机所允许申请的最大连接数不同等 ), 会使开发人员每次都只能通过修改业务代码的方式进行适应。

2. 将配置信息配置到配置文件中

此方案存在以下特征:

完成配置信息与源码的分离;不同环境使用相同的 class 文件;在打包前,需要对配置信息进行修改;不同环境所使用的 war 包不同(class 文件相同,但配置文件不同);

3. 使用 Maven 的 Profile 功能

相对之前方案,只是使用构建工具把手工修改升级为自动配置,对整体方案影响不大。

4. 全环境打包结合运行时配置

我们可以使用全环境包结合运行时配置的方式达到统一。

该策略的特征如下:

将所有环境的配置文件全部打包到发布包中;根据启动参数自动加载对应环境的配置信息;

通常的做法是在系统启动时,通过JVM的启动参数设置系统属性(如 JAVA -Denv=”dev”),当系统运行时通过 System 的 getProperty (String Key)方法获取指定的系统属性值来自动匹配当前环境,并加载配置文件中对应的配置信息,从而避免手动切换。

5. 集中式配置

该策略有如下几个特征:

配置信息存储于 git 中,以此借助其强大的版本管理功能;由配置服务统一为系统提供配置信息;各环境通过环境变量指定配置服务的地址;

除此以外,配置服务还提供了很多优势:

配置信息统一管理动态获取/更新配置信息降低运维人员的维护成本降低配置出错率

6. 全环境打包结合集中配置

7. 小结

配置信息管理是系统平稳运行不可或缺的重要组成部分,不同的管理策略,适应于不同的场景,我们需要熟知各种策略的优缺点,根据自身的情况进行选择。

切记,没有最好的方案,只有最适合的方案。

1.《架构设计 架构设计--配置信息管理》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《架构设计 架构设计--配置信息管理》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/346806.html