先说实现原理:
- 客户端发送长轮询主动拉取配置;
- nacos会保持连接30S,在此期间如果有改动就返回 如果没有改动就在第29.5秒时返回;
- 客户端springboot使用事件驱动的方式来更新配置,具体好多注解来实现动态配置就不说了;
@RefreshScope 配置@value使用
使用原来,使用@scope在ioc里会被注册成scopeBean,在接收到事件的时候会销毁bean重新生成,销毁生成会重新走一遍生命周期并会带来额外的负担,对有状态的bean不友好;
@configProperties
推荐使用这种,在接收到事件的时候调用set方法重新赋值配置。