首页 > c++, redis, 杂谈 > 动态更新运行中程序的配置信息

动态更新运行中程序的配置信息

2014年10月18日 发表评论 阅读评论

一个程序投产线上使用基本不会停下来,一旦业务需求改变或者增加需求,需要修改配置文件时,往往需要停机修改配置后重新启动服务。

这个过程进程少还可以接受,如果停一次机要很长时间而且需要授权更新,这个是难以接受的方法。

想了几个办法
1.放到内存,例如redis这种字典,这样可以动态修改redis的值来实现动态更新,问题是如何保证redis出问题不影响原程序呢?
重redis里读到map,如果需要的配置不在,到内存里去读,这样只能增加配置,想要删除配置好像不理想。

2.定时load配置文件,

3.通过信号load,

2.和3.不好协调多个进程服务一致性问题。

真伤脑筋啊。

有人知道好方法,告诉我一下。

除非注明,本站文章均为: nginx.cn原创,转载请注明本文地址: http://www.nginx.cn/2446.html

--完--

  1. 2014年11月9日06:04 | #1

    这个对内存消耗比较大吧,耗费资源的吧

  2. 2014年10月25日16:49 | #2

    现在都是SLB的,先卸下其中一台机子,如果配置正常再同步到其他机子上

  3. 2014年10月18日14:57 | #3

    请参考一下coreOS的策略,关键的问题是如何让新老配置的进程同时运行
    另外,请说明一下,你为啥重启一次服务的时间会很久。这个是设计系统的关键

  1. 本文目前尚无任何 trackbacks 和 pingbacks.