动态更新运行中程序的配置信息
一个程序投产线上使用基本不会停下来,一旦业务需求改变或者增加需求,需要修改配置文件时,往往需要停机修改配置后重新启动服务。
这个过程进程少还可以接受,如果停一次机要很长时间而且需要授权更新,这个是难以接受的方法。
想了几个办法
1.放到内存,例如redis这种字典,这样可以动态修改redis的值来实现动态更新,问题是如何保证redis出问题不影响原程序呢?
重redis里读到map,如果需要的配置不在,到内存里去读,这样只能增加配置,想要删除配置好像不理想。
2.定时load配置文件,
3.通过信号load,
2.和3.不好协调多个进程服务一致性问题。
真伤脑筋啊。
有人知道好方法,告诉我一下。
这个对内存消耗比较大吧,耗费资源的吧
现在都是SLB的,先卸下其中一台机子,如果配置正常再同步到其他机子上
请参考一下coreOS的策略,关键的问题是如何让新老配置的进程同时运行
另外,请说明一下,你为啥重启一次服务的时间会很久。这个是设计系统的关键