将 Spring Cloud Config Server 连接到本地 Git 存储库

在这一节中,我们将学习如何将 spring-cloud-config-server 连接到本地 Git 存储库。首先,我们将找到文件夹路径。

右键单击 git-localconfig-repo -> Properties -> 复制 Location 标签的地址,然后粘贴到 application.properties 文件中。

在 SpringCloudConfigServerApplication.java 文件中添加注解 @EnableConfigServer

Java 中的多态性 | 动态方法调度

在浏览器中输入以下 URL:

localhost:8888/limits-service/default

输出

{  
name: "limits-service",  
-profiles: [  
"default"  
],  
label: null,  
version:"0898c54ae1deb62733728e37e4c7962f529ee9ad",  
state: null,  
-propertySources: [  
- {  
name: C:\Users\Anubhav\git-localconfig-repo\limits-service.properties",  
-source: {  
limits-service-minimum: "8",  
limits-service-maximum: "88"  
}  
}  
]  
}  

在这里,我们已经建立了 SprinCloudConfigServerGit 存储库 之间的连接。

我们可以看到它显示了一组属性和值。它还检索了从哪个属性文件中检索这些值(最小值和最大值)的文件名。

关于 SpringCloudConfigServer 的重要之处在于它为多个服务存储配置。它还可以为每个服务的不同环境存储配置。

connect-Spring-cloud-config-server-to-local-git-repositorys.png

在上图中,有三个服务 CurrencyCalculationServiceCurrencyExchangeServiceLimitsService。LimitsService 有四个环境服务:Dev、QA、StageProduction。我们可以在 SpringCloudConfigServer 中配置这三个服务。

在 Git 存储库中配置多个环境

在 spring-cloud-config-server 项目中,我们已经添加了一个链接到 git-localconfig-repo,其中包含 limits-service.properties 文件。它成为 limits-service 的默认配置。

然而,我们可以为特定的环境覆盖它们。要覆盖这些值,将 limits-service.properties 复制并粘贴到文件夹 git-localconfig-repo 中,然后将其重命名为 limits-service-dev.properties。现在更新最小值和最大值。

limits-service.minimum=1  
limits-service.maximum=111  

再次复制相同的文件并粘贴到同一文件夹中。将其重命名为 limits-service-qa.properties。现在更新最小值和最大值。

limits-service.minimum=2  
limits-service.maximum=222  

如果我们想要选择默认值的最大值,而不是修改后的值,请在语句开头加上 # 符号。现在第二个语句变为注释。

limits-service.minimum=1  
introduction-to-currency-conversion-and-currency-exchange-servicelimits-service.maximum=111  

当我们执行它时,它从默认属性文件中选取最大值 888,而不是最大值 111。每当我们在文件中进行更改时,请在本地存储库中提交更改。

现在打开 Git Bash 并执行以下命令:

在其中添加文件的目录。

cd git-localconfig-repo  

将文件添加到 Git 存储库中。

git add -A  

现在检查要提交的文件的状态。

git status

connect-Spring-cloud-config-server-to-local-git-repositorys-1.png

现在提交更改。

git commit -m "Dev and QA"

connect-Spring-cloud-config-server-to-local-git-repositorys-2.png

现在我们可以访问 Dev 和 QA 的属性。

在浏览器地址栏中键入以下内容。

localhost:8888/limits-service/qa

输出

{  
name: "limits-service",  
-profiles: [  
"qa"  
],  
label: null,  
version:"0898c54ae1deb62733728e37e4c7962f529ee9ad",  
state: null,  
-propertySources: [  
- {  
name: C:\Users\Anubhav\git-localconfig-repo\limits-service-qa.properties",  
-source: {  
limits-service-minimum: "2",  
limits-service-maximum: "222"  
}  
},  
-{  
name: C:\Users\Anubhav\git-localconfig-repo\limits-service.properties?,  
-source: {  
limits-service-minimum: "8",  
limits-service-maximum: "888"  
}  
}  
]  
}  

我们可以观察到它正在检索属性源。这些属性列表按优先级排列。最高优先级是 QA 文件中配置的任何值。

如果某个值在 QA 文件中不存在,那么将从默认文件中选取值。因此,QA 文件中的任何内容都具有最高优先级。

将 limits-service 连接到 Spring Cloud Config Server

在本节中,我们将连接 limits-service 以从 spring-cloud-config-server 中获取配置。我们不需要在 application.properties 文件中配置值。移动到 limits-service 项目并将 application.properties 文件重命名为 bootstrap.properties。在 bootstrap.properties 中不需要配置值。所有的配置值都从 spring-cloud-config-server 中获取。在 bootstrap.properties 中指定 URI。

spring.application.name=limits-service  
spring.cloud.config.uri=http://localhost:8888  

limits-service 是 bootstrap.properties 中的关键路径。基于应用程序名称,我们将从本地 Git 存储库中选取值。现在重新启动 LimitsServiceApplication.java

Fetching config from the server at http://localhost:8888  
Located environment: name=limits-service, profiles=[default], label= null,  version="0898c54ae1deb62733728e37e4c7962f529ee9ad", state=null,   

为 Limit Service 配置配置文件

在这里要理解的一点是,limits-service 的所有配置都来自 Git 存储库。我们没有在 limits-service 中配置任何内容。在 Git 存储库中配置内容的优点是,limits-service 的整个配置与 limits-service 的部署分开。它将自动从 Git 存储库中获取。

现在打开 bootstrap.properties,并在其中添加 dev 配置文件。

spring.profile.active=dev

当我们运行 limits 时,它显示以下输出:

{  
maximum: 111,  
minimum:1  
}  

如果我们查看 limits-service-dev.properties 文件,可以看到这些值是从那里获取的。

假设我们要从 limits-service.properties 选择最大值,从 limits-service-dev.properties 中选择最小值,那么请从 limits-service-dev.properties 中删除最大值。limits-service-dev.properties 文件如下所示:

limits-service-minimum: 1 

现在通过以下命令提交更改:

git add *;  
git status  
git commit -m "removed configuration for maximum "  

connect-Spring-cloud-config-server-to-local-git-repositorys-3.png

现在启动 LimitsServiceApplication.java。当我们启动 LimitsServiceApplication 时,它会从 SpringCloudConfigServer 中获取值。我们可以观察到它从 limits-service.properties(默认服务)中获取最大值 888,从 limit-service-dev.properties 中获取最小值 1。然而,我们已经覆盖了默认服务的最小值。

让我们看看将配置文件 dev 更改为 qa 时会发生什么。打开 bootstrap.properties,将 dev 更改为 qa。应用程序将启动并获取更改。现在执行 limits

输出

{
maximum: 222,
minimum: 2
}

这些值来自 qa 环境配置。

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图