栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用SpringCloudConfig进行分布式配置:存储库后端类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用SpringCloudConfig进行分布式配置:存储库后端类型

https://github . com/piomin/sample-spring-cloud-config-repo.git.

在该存储库中放置了本章第一个示例所使用的所有属性源,其中说明了在不同发现区域中运行的客户端应用程序的原生配置文件支持。现在,该存储库保存了此列表中可见的文件,如图5.3所示。

Spring Cloud Config Server默认会在第一次 HTTP资源调用后尝试克隆存储库。如果要在启动后强制克隆它,则应将cloneOnStart属性设置为true。除此之外,还需要设置存储库连接设置和账户身份验证凭据。

spring:

application:

name: config-server

cloud:

config:

server:

git:

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 > uri :https://github . com/piomin/ sample-spring-cloud-config-repo.git

username: ${gi thub。username }

password: $ {github. password }

cloneOnStart: true

运行该服务器之后,我们可以调用之前练习中已知的端点,如ht/o/alos/8889/client- service/zone1或ht:/oca/hos/888/eclient-servicec zone2.yml。其结果与前面的测试结果相同,唯一的区别在于数据源。

现在可以来进行另一项练习。在之前的示例中,由于采用了发现优先引导方法,并且启用了native 配置文件,所以该示例需要对客户端的属性略作修改。现在因为使用的是Git后端,所以,可以针对这种情况开发更智能的解决方案。在当前的方法中,开发人员应该在GitHub上的配置库中创建discovery 分支

tps:/ihub.o/pioin/samoplrep spring- cloud- config rep:/ree/discovery),然后再把专用于该应用程序的文件放上去(该应用程序将演示发现优先引导机制)。如果将label参数设置为discovery然后再调用Config Server端点,则它将从新分支中获取数据。开发人员可以尝试分别调用ht:/ahost:8889/client-service/zone l/discovery和htpt//ocalhost/889/dicovery/cient-servicc -zone2.yml,然后检查和对比其结果。

现在来考虑另一种情况。假设已经更改了client-service 第三个实例的服务器端口,但由于某种原因,想要回到之前的值。那么,是否必须更改并提交client-service zone3.yml才能使用先前的端口值呢?答案是不必,现在开发人员所要做的就是在调用HTTP API资源时将提交ID作为label参数传递。已经执行的更改如图5.4所示。

如果使用父提交ID而不是分支名称调用API端点,则将返回旧端口号作为响应。图5.4是调用htpt://os:/88/e5/dd6/elient-servce-zone3.yiol的结果,其中,e546dd6就是以前提交的ID。

eureka:

client:

serviceUrl :

defaultZone: http://localhost:8761/eureka/

instance :

metadataMap :

zone: zone 3

server :

port: 8083

4.客户端配置

在使用Git后端构建服务器端时,仅演示了HTTP资源调用的示例。以下是客户端应用程序的示例配置。开发人员也可以在spring.profiles.active 运行参数中传递它,而不是在bootstrap.yml中设置profile属性。此配置将使客户端可以从discovery分支获取属性。开发人员也可以决定通过在label属性中设置它来切换到某个提交ID,这在前面已经介绍过。

spring:

application:

name: client-service

cloud:

config:

uri: http://localhost:8889

profile: zone1

label: discovery

label: e546dd6 //取消代码注释即可回滚

5.多个存储库

开发人员有时可能需要为单台配置服务器配置多个存储库。例如,可以想到的一种情况是:必须将业务配置与典型技术配置分开,这绝对是有可能的。

spring:

cloud:

config:

server:

git:

uri:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号