站务联系

使用SpringCloudConfig进行分布式配置:构建服务器端应用程序

发布时间:2022-04-05   来源:网络整理    
字号:

构建服务器端应用程序

在前一篇文章中已经讨论了HTTP API ( 一种由Spring Cloud Config Server 提供的基于资源的API) ,以及通过它创建和存储属性的方法。现在我们需要回归到基础方法。与发现服务器相同,Config Server可以作为Spring Boot应用程序运行。要在服务器端启用它,应该在pom.xml文件的依赖项中包含spring cloud-config-server.

org. springf ramework.cloud

spring-cloud-config-server

除此之外,开发人员还应该在主应用程序类上启用Config Server. 将服务器端口更改为888是一个好主意,因为客户端上spring.cloud.config.uri属性的默认值也是888端口。当然,这里说的是它在客户端上自动配置时的情况。要将服务器切换到不同的端口, 则应该将server.port属性设置在888端口上,或者使用spring config. name= configserver属性来启动它。下面是一个在spring cloud config. server库中嵌入的configserver.yml.

@SpringBootApplication

@EnableConfigServer

public class ConfigApplication {

public static void main(Stringl] args) (

new

SpringApplicationBuilder (ConfigApplication.class) .web (true) .run (args);

}

}

构建客户端应用程序

如果将端口8888设置为服务器的默认端口,则客户端的配置就会变得非常简单。开发人员需要做的就是提供包含应用程序名称的bootstrap.yml文件,并在pom.xml中包含以下依赖项。当然,该规则仅适用于localhost,因为客户端自动配置的Config Server 地址就是ht://oc/hos/888.

org. spr ingf ramework. cloud

spring-cloud-starter-config

如果为服务器设置了不同于888的端口,或者它在与客户端应用程序不同的计算机上运行,则还应在bootstrap.yml中设置其当前地址。以下是Bootstrap的上下文设置,它允许开发人员从端口8889 上可用的服务器获取client-service 的属性。当使用--spring.profiles. active-zonel参数运行该应用程序时,它会自动获取配置服务器中为zonel配置文件设置的属性。

spring:

application:

name: client-service

cloud:

config:

uri: :8889

开发人员可能已经注意到,客户端属性中存在发现服务网络位置的地址。因此,在启动客户端服务之前,应该运行Eureka Server。当然,Eureka 也有它自己的配置,并且已经存储在application.yml文件中,这在第4章的示例中已有说明。与client-service类似,该配置已分为3个配置文件,其中,每个配置文件在服务器的HTTP端口的数量和要与之通信的发现对等体列表等属性上都不同。

使用SpringCloudConfig进行分布式配置:构建服务器端应用程序

客户端引导方法

在之前介绍的示例解决方案中,所有应用程序都必须保持配置服务器的网络位置。服务发现的网络位置将作为属性存储在其中。在这一点上, 开发人员面临着一个需要讨论的有趣问题。这个问题是:我们的微服务是否应该知道Config Server 的网络地址? 在之前的讨论中我们同意这个结论:对于所有服务的网络位置来说,应保留的主要位置是服务发现服务器。配置服务器和其他微服务一样,也是Spring Boot应用程序,因此从逻辑上讲,它应该向Eureka注册它自己,以便为必须从Spring Cloud Config Server获取数据的其他服务启用自动发现机制。这反过来要求将服务发现连接设置放在bootstrap.yml中,而不是放在spring cloud.config.uri属性中。

使用SpringCloudConfig进行分布式配置:构建服务器端应用程序eureka:

client:

registerWwithEureka: false

fetchRegistry: false

与前面的示例相比还有一个不同,那就是开发人员应该为Config Server 包含spring- cou-tarter-eureka依赖项。现在,完整的依赖项列表显示在以下代码中。此外,必须通过在主类上声明@EnableDiscoveryClient注释来启用发现客户端,并且应通过在application.yml文件中将eureka.lcitseveicerl.defautZoe 属性设置为htp:/:/ocahost8761/eureka/来提供Eureka服务器地址。

图说天下

×
二维码生成