欢迎光临企业官网建站网站,提供自助建设系统平台服务

企业官网建站

专业为公司品牌推广建设网站

java B2B2C源码电子商城系统-Spring Cloud Config

作者:jcmp      发布时间:2021-04-25      浏览量:0
Spring Cloud Config

Spring Cloud Config 简介

在环境中存储配置 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码一零三八七七四六二六 这是声明的第三个因素。 在一个持续交付的世界里,管理我们的应用程序的配置变得更加重要,这样我们就可以从部署我们的应用程序中改变配置。 因为你希望能够尽快地对某些事件做出反应。 例如,更改HTTP调用的超时不应该意味着需要部署应用程序。如果您发现您的环境有一些临时问题,那么您应该可以很快地完成它。

Spring Cloud 遵循第三个因素的解决方案是Spring Cloud Config, 这基本上是一种独立于应用程序本身管理应用程序配置的方法。

1、理解 Spring 的配置文件资源

在每个 Spring 应用程序中,运行的配置文件总是以相同的方式处理。 运行的配置文件被称为属性源,基本上是一组按属性源来分组的配置文件,举个例子 ,将加载到应用程序中的 .properties 文件分组到一个 PropertySource 对象中。

当您的应用程序运行时,Spring 使用优先级属性源列表创建 Environment ,然后在每次您想要读取属性时,它将使用Spring 提供的查找配置的任何方式来查找属性。

为了获得更直观的表示,当一个非常简单的 Spring Boot 应用程序启动时,您可以看到以下 Environment 对象的屏幕截图:

如您所见,环境包含一个属性源列表。每当尝试在应用程序中使用属性时,Spring 都会按照属性值的顺序查询每个属性源。如果它在属性源中找到一个值,它将返回它。否则,它将转到下一个属性源。它将继续这样做,直到它在一个属性源中找到一个值,或者直到没有其他属性源为止。

Spring Cloud Config 配置

2、辅助程序属性源

在使用Spring Cloud Config 库时, 您的运行时配置设置将有轻微改变。如果我们用类路径中可用的这些库之一启动应用程序,比如Spring Cloud Config Zookeeper,检查应用程序的属性源,就像我们之前对普通应用程序所做的那样,你会注意到有一些不同之处。正如您在下图中看到的,还有一些属性源(突出显示):

3、动态配置后端集成

我们刚刚描述了一个 PropertySourceLocator 对象如何负责加载远程属性。Spring Cloud Config 的一个主要特性是,它提供了一些不同的选项,用于从盒子中加载远程属性,如Git、Zookeeper 或 Consul。

4、动态配置更新

我们之前提到过,当应用程序启动时,您的远程属性源就会被加载。由于 Spring Cloud Config 的整个目的是能够管理配置,而无需重新部署应用程序,它还提供了一种刷新配置的方法。

5、RefreshScope

Spring Cloud 为定义称为 RefreshScope 的 bean 提供了一个新的范围。如果您声明一个具有此范围的 @Bean,那么 Spring Cloud 将把该 bean 封装在一个代理类中,这是其他组件实际要注入的。这个代理将把组件的每个方法代理到真正的实现中。

当应用程序中有刷新事件时 ,所有 RefreshScope 代理 bean 都将其底层 bean (真正的实现)标记为脏的。这意味着无论何时调用代理的任何方法,它都会首先重新创建底层bean,然后转发方法调用。这个bean的重新创建意味着它将再次读取配置。务必确保 @RefreshScopebean是轻量级的,因为刷新事件将触发这些 bean 的重新构建。

6、触发刷新事件

在查看了在 Spring Cloud 应用程序中发生刷新事件时发生的情况之后,让我们看看可以通过哪些方式触发此事件。

7、/refresh 执行器端点

如果您不知道 Spring Boot 的执行器端点是什么,您应该查看一下。这是 Spring Boot 最好的特性之一。这些端点有助于应用程序的操作,比如检查应用程序的健康状况,查看触发了什么自动配置等等。

其中一个端点可以通过发送 POST/refresh HTTP 请求来触发上下文的刷新。

8、使用 Spring Cloud Bus

如果使用 Spring Cloud Bus 在应用程序之间进行通信,可以通过发送 RefreshRemoteApplicationEvent 来强制刷新应用程序。如果您的应用程序与 Spring Cloud Bus 集成,那么它们将有一个监听器用于该事件,该监听器将在接收该消息时触发刷新。这是 spring-cloud-config-monitor 库使用的方法。

9、触发刷新时的 Bean 行为

我认为很重要的一点是,当为前面描述的使用配置的不同方式触发刷新时,要了解bean的行为:

@ConfigurationProperties 类将总是自动更新。不需要为这些使用 @RefreshScope。

如果您查询环境,它将始终获得最新的配置,因此这种方法也不需要任何东西。 java B2B2C源码电子商城系统。