V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
inkWave
V2EX  ›  Node.js

如何动态热更新程序配置?

  •  
  •   inkWave · 2019-03-08 15:21:27 +08:00 · 3017 次点击
    这是一个创建于 1847 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 nodejs 做了一个 server 端,现在想实现一个功能,就是远程调用一个接口,程序本来从 A 到 B 的处理,变为从 A 到 C.

    但是程序是用 docker 部署的,现在是文件,环境变量这些手段,如果遇到程序遇到异常重启了,就都失效了.大家有什么好思路呢?

    现在能想到的就是热更新之后,再把挂载进程序的 configmap 也配合着更新了,然后应用如果遇到问题,不得不重启之后,还能读取最新的配置.但是这样有点麻烦,应用部署的多,每个配置还都不太一样,挨个改一遍的话,考虑到我们的实际需求,也没必要增加接口来热更新了.大家有什么好建议?

    1 条回复    2019-03-12 18:37:28 +08:00
    libook
        1
    libook  
       2019-03-12 18:37:28 +08:00
    把配置写在数据库里(如 redis,另外有些云服务提供配置管理功能),程序启动先去固定的数据库里读取配置,然后按照配置运行。当需要修改配置的时候调用一个接口修改数据库里的配置信息,这样程序再去取配置的时候就是修改后的了。

    为了避免数据库访问频率与程序调用频率正相关,可以在服务端上做一个缓存机制,比如每 10 秒才去数据库里取配置,其他时候一律从缓存里取配置。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5417 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:48 · PVG 14:48 · LAX 23:48 · JFK 02:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.