## 配置中心 分布式系统面临的配置问题,微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的。Mix 的配置中心依然采用性能强劲的 Etcd,后续会陆续扩展其他配置中心。 ## Mix Micro Etcd >[info] 需先安装 Etcd V3 使用 [composer](https://www.phpcomposer.com/) 安装: ``` composer require mix/micro-etcd ``` ## 依赖注入配置 - [manifest/beans/etcd.php](https://github.com/mix-php/mix-micro-skeleton/blob/master/manifest/beans/etcd.php) ## 将 git 仓库中的配置同步到配置中心 Mix 开发了和 spring cloud 一样的能将 git 仓库管理的配置文件信息,同步到配置中心。 - 在命令行程序中用定时器,定时同步配置到配置中心 - 查看同步实例: [ConfigSyncCommand.php#L49](https://github.com/mix-php/mix-micro-skeleton/blob/master/app/Console/Commands/ConfigSyncCommand.php#L49) - 写一个 api 接口,在 git webhook 中设置该接口,然后接口中使用 sync 方法同步配置到配置中心 ## 配置动态刷新 当配置中心的配置被修改时,微服务无需重启进程即可动态刷新配置,使用新的配置执行,由于 Mix Bean 的先进性,在配置动态刷新方面 Mix 比 Go Micro 更加优秀,能用非常简单的代码就实现组件的动态刷新。 - 只需使用事件监听器监听配置变化,然后调用 BeanDefinition 的 refresh 方法即可:[ConfigListener.php#L33](https://github.com/mix-php/mix-micro-skeleton/blob/master/app/Common/Listeners/ConfigListener.php#L33)