系统设计 | 如何管理应用系统中的配置?
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
TechLead 少个分号
扫码关注公众号
扫码阅读
手机扫码阅读
配置文件管理摘要
当应用系统规模庞大时,配置文件管理变得复杂,涉及数据库配置表、配置中心和前端等多个部分。本文整理了一次技术例会关于配置管理的内容,包括需要考虑的问题和原则,以及配置的分类与处理方式。
配置管理要考虑的问题和原则
- 安全:保证配置可靠,防止丢失。
- 透明:便于查找配置。
- 成本:减少配置管理时间,注意环境间差异。
配置分类与处理
配置被分为以下几类:
- 通用应用程序配置:技术配置如端口号、数据库连接等,放入application.yml,构建进软件包。
- 环境应用配置:环境相关配置如数据库连接地址,存放配置中心,涉及密码时加密处理。
- 通用业务规则:与技术无关的业务规则,前后端共用,通过API传递。
- 用户或管理员维护的基础数据:如行业、行政区划,需提供管理界面。
通用业务规则的解决方案
为避免前后端通用业务规则重复定义,设计通用接口。将业务规则以YAML文件存放于resources/business-rules/目录,通过RESTFul API /business-rules/{name}传递给前端。
RESTFul API实现
演示项目包含一个BusinessRulesController类,使用Spring框架,定义了一个API响应业务规则请求。代码中缺少将YAML转换为JSON的步骤,推荐使用Spring的Properties或序列化工具。
YAML转JSON的方法
可以通过ObjectMapper或YAMLMapper实例,读取YAML文件,转换为Java对象,再通过ObjectMapper生成JSON字符串。
总结
文章最后提供了配置文件管理的表格,涵盖数据类型、参考示例和处理方式,以便团队遵守规约。
| 数据类型 | 参考示例 | 处理方式 |
|---|---|---|
| 通用应用程序配置 | 端口、数据库配置 | 程序内application.yml文件 |
| 环境应用配置 | 数据库连接 | 配置中心配置或者凭证加密配置 |
| 通用业务规则 | 用户密码强度 | 一组程序内资源目录YAML文件 |
| 需维护基础数据 | 行政区划 | 数据库存储,专用API返回 |
如有错误,可联系作者微信纠正并领取红包。推荐阅读更多系统设计相关内容。
TechLead 少个分号
TechLead 少个分号
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
TechLead 少个分号的其他文章
研发自测之路:从"救火"到自测
哪有什么测试,自己点两下没报错就行了,反正上线后用户就是公司的测试。“互联网公司不需要测试人员,用户就是测试”这是老板的原话。
系统设计 | 高性价比的测试策略("瓜藤"比喻)
使用 E2E + Unit 的测试策略的显著提高测试覆盖率,驱动团队主动编写测试,并驱动代码应用和服务分离。
系统设计 | 遗留系统改造和迁移模式
新开发的系统如何实现对存量业务的切换?
DDD clinic:“千层饼” 架构之痛
使用 DDD 后,代码变多了。一个简单的功能需要修改很多类,需要经过很多层的转换才能实现。\x0a\x0a这种架构,我们可以形象的称之为 “千层饼”架构。
技术管理 | 为什么企业更愿意空降而不是提拔管理者?
做咨询的经历中有一个非常常见的现象,管理者大多是空降的,而不是提拔的。甚至宁愿从另外一个公司挖一个基层管理者过来干中层管理。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线