扫码阅读
手机扫码阅读
系统设计 | 如何管理应用系统中的配置?
136 2024-08-27
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:系统设计 | 如何管理应用系统中的配置?
文章来源:
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 少个分号的其他文章
架构师的认知提升
我们如何建立自己的认知体系?
系统设计 | 高性价比的测试策略("瓜藤"比喻)
使用 E2E + Unit 的测试策略的显著提高测试覆盖率,驱动团队主动编写测试,并驱动代码应用和服务分离。
系统设计 | 秒杀系统设计
对于各大电商平台而言,爆款运营和促销活动的日常化已成为常态,而支撑这些的秒杀系统自然是不可或缺的一环。
系统设计 | 处理业务公式
公式引擎技术选型、领域建模、四则表达式求值原理、布尔表达式化简、ANTLR DSL 实现。
构建离线应用的注意事项
如果有一天,产品经理告诉你,你正在开发的软件需要支持离线使用呢?先别着急挠头,我们来看下软件需要在离线情况下遇到的挑战和问题,以及如何解决它们。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线