0702-spring cloud config-git仓库配置、用户授权
一、概述
例如:git、svn、基于git本地存储、 本地存储、Vault
二、git
EnvironmentRepository的默认实现使用Git后端。要更改存储库的位置,可以在配置服务器中设置“spring.cloud.config.server.git.uri”配置属性(例如,在application.yml中)。
优点:版本审计、分布式简单
准备工作
1、新建两个git:
sample:https://github.com/bjlhx15/spring-cloud-config-test-sample.git
special:https://github.com/bjlhx15/spring-cloud-config-test-special.git
2、克隆到本地
在每个仓库中增加application.yml,内容如下:
sample中的配置:
profile: sample
special中的配置:
profile: special
然后提交git。
2.1、Git URI中的占位符
2.1.1、开发
代码:https://github.com/bjlhx15/spring-cloud/tree/master/config-part/microservice-config-server
修改配置文件:【注意uri中的通配符{application}】
server:
port:
spring:
cloud:
config:
server:
git:
uri: https://github.com/bjlhx15/{application}
2.1.1、访问
http://localhost:8080/spring-cloud-config-test-sample-default.yml
http://localhost:8080/spring-cloud-config-test-special-default.yml
可以发现,不同微服务对应不同git配置服务,配置隔离。
2.2、模式匹配和多个存储库
还有对应用程序和配置文件名称进行模式匹配的更复杂要求的支持。模式格式是带有通配符的{application} / {profile}名称的逗号分隔列表(其中可能需要引用以通配符开头的模式)。例:
在准备工作的special中添加开发【spring-cloud-config-test-special-dev.yml】和测试环境【spring-cloud-config-test-special-test.yml】
内容分别如下:
spring-cloud-config-test-special-dev.yml
profile: special-dev
spring-cloud-config-test-special-test.yml
profile: special-test
2.2.1、开发
代码:https://github.com/bjlhx15/spring-cloud/tree/master/config-part/microservice-config-server
修改配置文件:
server:
port:
spring:
cloud:
config:
server:
git:
uri: https://github.com/bjlhx15/spring-cloud-config-test-repo #公用的
repos:
simple: https://github.com/bjlhx15/spring-cloud-config-test-sample
special:
pattern: special*/dev*,*special*/test*
uri: https://github.com/bjlhx15/spring-cloud-config-test-special
实际测试出错,正在排查中
Binding to target org.springframework.cloud.config.server.ssh.SshUriProperties(uri=https://github.com/bjlhx15/spring-cloud-config-test-repo hostKeyAlgorithm=null, hostKey=null, privateKey=null, ignoreLocalSshSettings=false, knownHostsFile=null, preferredAuthentications=null, strictHostKeyChecking=true,){repos={special=org.springframework.cloud.config.server.ssh.SshUriProperties(uri=https://github.com/bjlhx15/spring-cloud-config-test-special hostKeyAlgorithm=null, hostKey=null, privateKey=null, ignoreLocalSshSettings=false, knownHostsFile=null, preferredAuthentications=null, strictHostKeyChecking=true,)}} failed:
Property: spring.cloud.config.server.git.repos[sample]
Value: https://github.com/bjlhx15/spring-cloud-config-test-sample
Reason: Failed to convert property value of type 'java.lang.String' to required type 'org.springframework.cloud.config.server.ssh.SshUriProperties$SshUriNestedRepoProperties' for property 'repos[sample]'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'org.springframework.cloud.config.server.ssh.SshUriProperties$SshUriNestedRepoProperties' for property 'repos[sample]': no matching editors or conversion strategy found
可以查看:org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository,中repos属性
进入org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.PatternMatchingJGitEnvironmentRepository:查看到pattern和URI
repo中的pattern属性实际上是一个数组,因此您可以在属性文件中使用YAML数组(或[0],[1]等后缀)绑定到多个模式。如果您要使用多个配置文件运行应用程序,则可能需要执行此操作。
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
repos:
development:
pattern:
- '*/development'
- '*/staging'
uri: https://github.com/development/config-repo
staging:
pattern:
- '*/qa'
- '*/production'
uri: https://github.com/staging/config-repo
2.3、searchPaths
每个存储库还可以选择将配置文件存储在子目录中,并且可以将搜索这些目录的模式指定为searchPaths。例如在顶层:
server:
port: 8080
spring:
cloud:
config:
server:
git:
uri: https://github.com/bjlhx15/spring-cloud-config-test-repo
searchPaths:
- foo # foo 路徑
- bar # bar 路徑
访问:
http://localhost:8080/foo-dev.yml
http://localhost:8080/bar-dev.yml
http://localhost:8080/de-dev.yml
服务器搜索顶层 “/”和foo子目录中的配置文件,以及名称以“bar”开头的任何子目录。使管理清晰一些
其实也可以使用通配符
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
searchPaths: '{application}'
2.4、cloneOnStart
查看以上代码可知,都是在调用使用时候加载配置
Adding property source: file:/C:/Users/ADMINI~1/AppData/Local/Temp/config-repo-6862549358101599484/application.yml
增加参数
spring:
cloud:
config:
server:
git:
uri: https://git/common/config-repo.git
cloneOnStart: true #全部启动时候加载
repos:
team-a:
pattern: team-a-*
cloneOnStart: true
uri: http://git/team-a/config-repo.git
team-b:
pattern: team-b-*
cloneOnStart: false
uri: http://git/team-b/config-repo.git
team-c:
pattern: team-c-*
uri: http://git/team-a/config-repo.git
三、用户授权
配置用户名密码等
server:
port: 8080
spring:
cloud:
config:
server:
git:
uri: https://github.com/bjlhx15/spring-cloud-config-test-repo
username: ***
password: ***
0702-spring cloud config-git仓库配置、用户授权的更多相关文章
- spring cloud config svn仓库配置
之前快速入门了一下spring cloud config 但是仓库用的别人博客上的git仓库,公司用的是svn项目管理中心,下面这个自己配置的时候出现的错误 You need to configure ...
- 【Spring Cloud】Spring Cloud Config 实现分布式配置中心
Spring Cloud Config 实现分布式配置中心 一.分布式配置中心 分布式系统中,往往拥有大量的服务应用,而每个应用程序都需要有对应的配置文件来协助完成服务环境初始化.运行.因此生产了大量 ...
- 使用Spring Cloud Config统一管理配置,别再到处放配置文件了
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 可配置是一个成熟软件系统应该提供的特性,而配置管理对于大型系统就显得十分重要,特别是对于拥有多个应用的微服务系统.可喜的是, ...
- .NET Core微服务之基于Steeltoe使用Spring Cloud Config统一管理配置
Tip: 此篇已加入.NET Core微服务基础系列文章索引 => Steeltoe目录快速导航: 1. 基于Steeltoe使用Spring Cloud Eureka 2. 基于Steelt ...
- spring cloud config git库文件搜索顺序
spring.cloud.config.server.git.uri只配置到仓库那一层就行了,需要访问仓库的子目录的话就配置spring.cloud.config.server.git.searchP ...
- Spring Cloud Config git版
由于在学习这块内容的时候还不会使用gitHub所以就用了osc的码云 config server POM文件 <dependency> <groupId>org.springf ...
- spring cloud config —— git配置管理
目录 talk is cheep, show your the code Server端 pom.xml server的application.yml 配置文件 测试Server client端 po ...
- 微服务SpringCloud之Spring Cloud Config配置中心Git
微服务以单个接口为颗粒度,一个接口可能就是一个项目,如果每个项目都包含一个配置文件,一个系统可能有几十或上百个小项目组成,那配置文件也会有好多,对后续修改维护也是比较麻烦,就和前面的服务注册一样,服务 ...
- Spring Cloud Config(二):基于Git搭建配置中心
1.简述 本文选用Git作为配置仓库,新建两个环境的配置文件夹,dev 和 test,文件夹中分别存放 Config Client 端的配置文件,目录结构如下: ├ ─ ─ dev └ ─ ─ con ...
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
随机推荐
- optimization blocks (csapp chapter 5.1)
p_511 编译器在没有指示下,会做‘ safe optimization',因此有些优化在没有参数的指示下是不会对代码做优化的,故在程序中应该避免某一类代码,因为它们妨碍了编译器做优化. optim ...
- Git高级操作
本文是在Git操作指南基础上衍生出来的高级操作,如果你对git不是很熟悉,建议你先阅读Git操作指南. 一.忽略提交特定文件 如果你不想让一些文件上传到git仓库中,可以让Git忽略特定文件或是目录, ...
- python--dict和set类型--4
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一.什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学 ...
- python--条件判断和循环--3
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一.if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄, ...
- c#接口作为参数传递、返回
接口做为参数传递,传递的是实现了接口的对象: 接口作为类型返回,返回的是实现了接口的对象. 接口的传递与返回就是围绕着上面的两句话展开的.
- List 和 ObservableCollection的区别
在WPF中绑定一个集合的时候,比如:DataGrid.ItemsSource = new List<T>(); 这样的操作,会存在当数据行新增或者删除的时候不会得到及时的通知来刷新界面,而 ...
- shell基础(六)--字符串和数组
对文本处理,单独用shell来处理还是比较薄弱.所以shell就引用了awk and sed这两个命令.我们今天不说这个 一 字符串 字符串是shell编程中最常用最有用的数据类型,因为你定义一个变 ...
- Websphere停止服务不用输入账号密码
启用了安全性的WebSphere Application Server,在日常维护中经常在停止服务的时候需要输入用户名和密码.停止的方式如下:[root@was /]# /opt/IBM/WebSph ...
- mybatis 返回值类型是Map
<select id="selectByMemberKey" resultType="java.util.HashMap"> SELECT memb ...
- Swift-'as?','as'用法
何时使用 'as?'和'as' 让我们来继续为我们假象的UIKit应用写点代码.假设你需要出场(展示)一个新的modal view controller到手机的屏幕上(比如通过使用presentVie ...