配置中心组件和监控组件冲突导致应用启动报错
Open
bug
- Dominant language
- PHP
- Stars
- 6.9k
- Forks
- 1.3k
- Avg merge
- 4h 21m
- Merged PRs (30d)
- 4
Description
Hyperf 2.0.11
Swoole 4.5.2
PHP 7.4.8
如题,接入配置中心后,配置中心监听 BeforeWorkerStart 事件中去拉取配置,并且更新 ConfigInterface 对象的;
而监控组件的 Watcher (比如RedisPoolWatcher) 也是监听 BeforeWorkerStart 事件,这时候就会出现,Watcher 组件优先于 配置中心的监听器执行(具体执行顺序不明,文档没有说明),导致了配置中心的配置还没有拉取,Watcher 获取到了错误的配置。
假如数据库和 Redis 配置,是存放在配置中心中的,那么就会启动的时候一路报错下去。这里应该要调整 Watcher 组件监听 MainWorkerStart 事件即可解决这个问题
另外,所有其他组件如果有依赖事件机制的,假如监听的是 BeforeWorkerStart 并且有用到配置中心的值,那么都会存在这个问题
Contributor guide
Assessment
This issue has not been assessed yet.