我搜索了一下,是使用环境配置成 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 服务??
1
hangszhang 2020-06-13 19:10:14 +08:00
配置中心只把数据存本地, 你还用配置中心干嘛?直接写死在配置文件里面不就行了
|
2
lzk50136 2020-06-13 19:12:35 +08:00 via Android
用 nacos
|
3
zealinux OP @hangszhang
另外前几天发生过这样的事情, (付费的)第三方的远程代码 git 托管的服务崩了, 导致 配置中心 挂了。 (远程访问不到,居然还能把本地好的给充掉,也是醉了) 然后整个 spring cloud 挂了。 |
4
yukiloh 2020-06-13 19:21:23 +08:00 via Android
话说配置中心可不可以写多个备选…我还真的没试过
|
5
hantsy 2020-06-13 21:10:11 +08:00
相对来讲,除了一些云服务特有的 ENV,还有加密配置外,K8s 的 ConfigMap 不错。Git 这种 Config Server 实际应用中鸡肋。
|
6
hantsy 2020-06-13 21:13:22 +08:00
要用也可以选择基于 etcd,consul 的服务,其它的就算了吧。Configserver 这个一直没兴趣,我推荐的是用系统环境变量,aws 还支持 Vault 类似的加密配置。
|
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 |
8
k9990009 2020-06-14 09:52:45 +08:00 via Android
我记得 prd,native 一块写的,逗号隔开
|
9
cuichaoyang 2020-06-14 11:19:36 +08:00 via iPhone
启动参数 profiles=dev,native
|
10
zealinux OP |
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 的需求,还能做版本管理 |