外部配置存储模式 External Configuration Store Pattern
描述
将配置数据集中到一个应用中,通俗一点,就是配置中心。这个模式可以方便管理,控制和共享配置数据。
背景和问题
单个应用程序改变了配置需要重新部署,应用之间也不能共享配置。
解决方案
在一个外部存储服务中存储配置信息,并且向其他应用提供配置服务。
注意事项
- 确保可接受的性能,高可用,可备份的应用。
- 考虑存储方式对性能的影响。
- 配置的范围和权限。
- 考虑配置数据仅允许相应的用户访问。
何时使用
- 需要共享配置。
- 需要集中存储管理所有的配置。
结构中包含的角色
ConfigService 配置服务
AppA 应用A
AppB 应用B
最小可表达代码
// 配置服务 class ConfigService { public function getStatus() { return 1; } } // 应用A class AppA { protected $configService; public function __construct() { $this->configService = new ConfigService(); } public function getStatus() { return $this->configService->getStatus(); } } // 应用B class AppB { protected $configService; public function __construct() { $this->configService = new ConfigService(); } public function getStatus() { return $this->configService->getStatus(); } } $configService = new ConfigService(); $appA = new AppA($configService); $appB = new AppB($configService); var_dump($appA->getStatus()); var_dump($appB->getStatus());
推荐文章: