V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NoKey
V2EX  ›  程序员

spring web 服务,如何便捷的更换配置

  •  
  •   NoKey · 2020-05-07 11:04:14 +08:00 · 2387 次点击
    这是一个创建于 1653 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟目前在学习后台相关服务

    不论是 spring mvc 还是 springboot

    更换配置,如果不做特殊处理的话,都需要在修改配置文件,然后重启服务

    有没有很好的办法,不重启服务呢?

    我考虑了几种办法:

    1. 写到数据库里,每次服务用到相关配置的地方,读数据库,这样需要增加一套接口,来维护这个数据。

    2. springboot 有一个配置服务器,可以从服务器读取配置,但是这样会多一个服务要维护,这个服务的可靠性还得花精力,对于小型公司来说,过于麻烦了

    请教各位大佬,有比较简单比较方便的方法么,谢谢。

    17 条回复    2020-05-07 23:29:28 +08:00
    ma836323493
        1
    ma836323493  
       2020-05-07 11:16:06 +08:00
    配置服务不需要太高可靠性
    lzk50136
        2
    lzk50136  
       2020-05-07 11:20:39 +08:00
    加个 nacos ?
    Vedar
        3
    Vedar  
       2020-05-07 11:21:23 +08:00
    就像 1l 说的 配置服务器挂了重启就是了 没啥高可用的 完全不重启服务是不可能的 spring boot 不是有 profile 么 用不着修改配置文件 维护多套环境的配置文件就好了呀
    jorneyr
        4
    jorneyr  
       2020-05-07 11:22:58 +08:00
    既然是小公司,配置还能有多复杂,针对不同的环境配置 profile 就好了。
    wangyanrui
        5
    wangyanrui  
       2020-05-07 11:24:49 +08:00
    1. 小项目,多 profiles
    2. 大项目,配置中心
    wucao219101
        6
    wucao219101  
       2020-05-07 11:25:56 +08:00
    用一个统一的配置中心就行,选择有很多:Spring Cloud Config 、Nacos 、Consul 、Apollo
    airfling
        7
    airfling  
       2020-05-07 11:27:38 +08:00
    spring boot actuator + spring cloud config,想要刷新配置的时候请求下远程的刷新接口就会重新加载配置和重新初始化你需要初始化的 bean
    darkaforest
        8
    darkaforest  
       2020-05-07 11:31:49 +08:00 via Android
    只用原生的可以试试 spring cloud bus + spring cloud config 实现个配置中心,目前支持大部分配置不重启更新,网上教程很多
    egglin
        9
    egglin  
       2020-05-07 11:32:11 +08:00
    应该不用考虑高可用问题
    WhereverYouGo
        10
    WhereverYouGo  
       2020-05-07 13:35:11 +08:00
    Apollo
    Guozi1989
        11
    Guozi1989  
       2020-05-07 16:05:44 +08:00
    Apollo
    abcbuzhiming
        12
    abcbuzhiming  
       2020-05-07 16:09:44 +08:00
    你的项目要多高的可靠性才要考虑不重启服务这个问题?我觉得这是个伪需求
    duwan
        13
    duwan  
       2020-05-07 16:22:57 +08:00
    放数据库里面,定时读出来放到 spring 的 property 中。
    24bit
        15
    24bit  
       2020-05-07 16:40:25 +08:00
    Apollo
    gaius
        16
    gaius  
       2020-05-07 21:13:23 +08:00 via Android
    滚动升级挺方便的
    lordofhollows
        17
    lordofhollows  
       2020-05-07 23:29:28 +08:00
    你的第 1 种办法就行,已经很简单了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:52 · PVG 17:52 · LAX 01:52 · JFK 04:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.