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

Spring Cloud Config 如何只使用本地目录?

  •  
  •   zealinux · 2020-06-13 18:55:23 +08:00 · 2303 次点击
    这是一个创建于 1624 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我搜索了一下,是使用环境配置成 native 。

    Config 服务的配置文件:

    spring:
        profiles:
            active: native
    
    spring:
        cloud:
            config:
                server:
                    native:
                        search-locations: file:///${user.home}/config-repo
    

    config-repo 的目录结构:

    ProjectA/
      datasource/
        ProjectA-prd.yml
    ProjectB/
      datasource/
        ProjectB-prd.yml
    

    然后我发现浏览起来获取不到配置

    http://<config 服务 IP:Port>/ProjectA/prd

    如果改成:

    search-locations: file:///${user.home}/config-repo/**

    还是不行。 不知道改怎么搞才对?

    是不是 native 不支持通配符?


    我的需求是,不依赖 git,只用本地目录来放所有微服务的配置文件。

    如果依赖 git,岂不是部署给别人用的时候,还得再部署一套 git 服务??

    11 条回复    2020-06-15 13:22:00 +08:00
    hangszhang
        1
    hangszhang  
       2020-06-13 19:10:14 +08:00
    配置中心只把数据存本地, 你还用配置中心干嘛?直接写死在配置文件里面不就行了
    lzk50136
        2
    lzk50136  
       2020-06-13 19:12:35 +08:00 via Android
    用 nacos
    zealinux
        3
    zealinux  
    OP
       2020-06-13 19:19:19 +08:00
    @hangszhang

    另外前几天发生过这样的事情,

    (付费的)第三方的远程代码 git 托管的服务崩了,
    导致 配置中心 挂了。
    (远程访问不到,居然还能把本地好的给充掉,也是醉了)
    然后整个 spring cloud 挂了。
    yukiloh
        4
    yukiloh  
       2020-06-13 19:21:23 +08:00 via Android
    话说配置中心可不可以写多个备选…我还真的没试过
    hantsy
        5
    hantsy  
       2020-06-13 21:10:11 +08:00
    相对来讲,除了一些云服务特有的 ENV,还有加密配置外,K8s 的 ConfigMap 不错。Git 这种 Config Server 实际应用中鸡肋。
    hantsy
        6
    hantsy  
       2020-06-13 21:13:22 +08:00
    要用也可以选择基于 etcd,consul 的服务,其它的就算了吧。Configserver 这个一直没兴趣,我推荐的是用系统环境变量,aws 还支持 Vault 类似的加密配置。
    jorneyr
        7
    jorneyr  
       2020-06-13 21:32:31 +08:00
    # 配置的是目录
    spring.cloud.config.server.native.search-locations = classpath:/shared

    可以参考这个 https://qtdebug.com/html/spring-boot/spring-cloud/Config.html
    k9990009
        8
    k9990009  
       2020-06-14 09:52:45 +08:00 via Android
    我记得 prd,native 一块写的,逗号隔开
    cuichaoyang
        9
    cuichaoyang  
       2020-06-14 11:19:36 +08:00 via iPhone
    启动参数 profiles=dev,native
    zealinux
        10
    zealinux  
    OP
       2020-06-14 21:44:33 +08:00
    @jorneyr
    使用到了 classpath,也就是要配置文件打包到 jar 里面咯?

    如果配置文件后期要改动,岂不是每次都要重新打包一下 jar ?
    ipeony
        11
    ipeony  
       2020-06-15 13:22:00 +08:00
    我觉得你的需求不是不依赖 git,只是不依赖 git 远程服务
    直接配置 spring.cloud.config.server.git.uri 指向本地的 git 仓库目录( eg. file:///Users/devUser/Projects/Work/demo-repo ),既可以满足 native 的需求,还能做版本管理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.