pyapollo icon indicating copy to clipboard operation
pyapollo copied to clipboard

实时同步配置是如何实现的?

Open liutianling opened this issue 3 years ago • 8 comments

请教下你这个是如何实时感知apollo配置的变化的? 或者具体体现在代码的什么地方?我看到的是代码里面好像一直在请求。 非常感谢!

liutianling avatar May 07 '21 09:05 liutianling

另外,直接访问不需要用户名和密码的吗?谢谢

liutianling avatar May 08 '21 02:05 liutianling

是的,配置同步是通过异步任务定时获取 鉴权信息根据实际情况,使用authorization参数进行配置

BruceWW avatar May 10 '21 10:05 BruceWW

谢谢回复! 就是说通过不断请求,然后与本地缓存比较,来判断apollo配置是否有更新,是这样吗? 我的需求是这样的: 在服务启动时,我需要先拉取apollo配置参数,然后对服务进行初始化 后期apollo配置发生变动时,需要实时获取apollo配置,然后重新初始化服务 请教下这个需求要怎么实现。 万分感谢!

liutianling avatar May 11 '21 01:05 liutianling

所有逻辑在client类中已经实现了,你只需要调用类方法获取配置值即可。 整体处理过程是:实例化client类,然后在类第一次初始化时会调用远端服务器进行本地缓存初始化,并启动一个异步线程不断调用服务器数据更新本地缓存,所有获取值的操作都默认读本地缓存

BruceWW avatar May 11 '21 01:05 BruceWW

好的,谢谢回复! 本地缓存不断更新,我怎么知道参数是否有更新。 因为有参数更新后,我需要重启服务。 是逐一比较所有值还是有个什么接口 非常感谢!

liutianling avatar May 12 '21 07:05 liutianling

我个人认为,用户不应该关注数据是否更新,配置的更新由client来保证 如果是服务的基础配置,一般更新不会很频繁,更新配置后单独重启即可 如果是服务调用的配置参数,不需要重启服务

BruceWW avatar May 12 '21 12:05 BruceWW

谢谢回复。 实际情况是,服务启动时调用配置参数,去初始化一些功能类。当这些配置参数发生改变时,服务必须重新读取这些配置参数,完成功能类的重新初始化,然后再去处理数据。 另外单独重启的问题,更改配置很多时候是业务部门直接更改的,让他们取重启服务有点困难,还有的情况是服务部署了很多节点,一一手动重启服务也比较麻烦。所以才想您请教这个问题。 谢谢!

liutianling avatar May 13 '21 01:05 liutianling

系统配置不应该由业务改动,除了系统配置,都可以用猴子补丁处理

BruceWW avatar May 20 '21 12:05 BruceWW