700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > spring cloud config-配置中心

spring cloud config-配置中心

时间:2023-01-03 17:05:35

相关推荐

spring cloud config-配置中心

在咱们日常开发中,对于一些信息的配置加载一般都不会在代码中写死,而是通过一些配置动态加载。对于springcloud来说就是通过config来获取配置中心的配置信息来实现的。那么怎么实现一个配置中心?

一、配置中心地址

选择一个配置中心地址,我这里选的得是github,新建一个项目,简单配置即可。

咱们一般开发都分三个环境:开发、测试、和线上环境。新建三个文件将相应配置添加就可以了。

文件内容就随便了,比如我的:

二、服务端

有了配置地址后就该获取配置信息了。新建一个maven项目,作为config服务端,负责从配置地址读取相应配置(这里配置地址为自己的github),建好之后导入向管依赖。

需要的依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency>

依赖添加完成后,创建一个启动类,启动类上需要添加一个注解:@EnableConfigServer

在resources文件里面,新建一个bootstrap.yml文件

bootstrap.yml填写配置信息

spring:application:name: config-servercloud:config:server:git:uri: /LISHENGDRUNK/config-repo-demo.git#配置git仓库地址 search-paths: config-repo #git仓库地址下的相对地址,可以配置多个,用,分割。server:port: 12000

配置信息讲解:

Spring boot config也提供本地存储配置的方式,我们只需要设置属性spring.profiel.active=native,config server会默认从应用的src/main/resource目录下检索配置文件,也可以通过spring.cloud.config.server.native.searchLocations=file:E:/properties属性来指定配置文件的位置。虽然spring cloud config提供了这样的功能,但是为了支持更好的管理内容和版本控制,还是推荐使用github的方式。

启动类

启动类添加@EnableConfigServer,激活对配置中心的支持

@SpringBootApplication@EnableConfigServerpublic class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}}

到此 Server 端相关配置已经完成。

测试

首先我们先要测试 Server 端是否可以读取到 github 上面的配置信息,直接访问http://localhost:12000/config-client/dev返回信息如下:

{"name": "config-client","profiles": ["dev"],"label": null,"version": "4e3ca4b9e2bb96c9a0ba012f6c6e0b6cadc48f3e","state": null,"propertySources": [{"name": "/LISHENGDRUNK/config-repo-demo.git","source": {"info.profile": "dev-update"}}]}

上述的返回的信息包含了配置文件的位置、版本、配置文件的名称以及配置文件中的具体内容,说明 Server 端已经成功获取了 Git 仓库的配置信息。

如果直接查看配置文件中的配置信息可访问http://localhost:12000/config-client-dev.yml返回:\

neo:

holle: dev-update

四、客户端

修改配置文件config-client-dev.yml中配置信息为:dev holle, 再次在浏览器访问http://localhost:12000/config-client-dev.yml返回:dev hello,说明 Server 端会自动读取最新提交的内容。

在完成了上述验证之后,确定配置服务中心已经正常运作,下面我们尝试如何在微服务应用中获取上述的配置信息。

再创建一个基础的 Spring Boot 应用,命名为 config-client。

添加依赖

在 pom.xml 中添加下述依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>

需要配置两个配置文件,application.yml 和 bootstrap.yml,配置分别如下:配置文件

application.yml

spring:application:name: config-gitserver:port: 13000bootstrap.ymlpring:cloud:config:uri: http://localhost:12000 # 配置中心的具体地址,即 config-servername: config-client # 对应 {application} 部分profile: dev # 对应 {profile} 部分label: master # 对应 {label} 部分,即 Git 的分支(默认是master)。如果配置中心使用的是本地存储,则该参数无用

特别注意:上面这些与 Spring Cloud Config 相关的属性必须配置在 bootstrap.yml 中,config 部分内容才能被正确加载。因为 config 的相关配置会先于 application.yml,而 bootstrap.yml 的加载也是先于 application.yml。

启动类

启动类不用修改,只用@SpringBootApplication就行了

@SpringBootApplicationpublic class SpringCloudConfigClientApplication {public static void main(String[] args) {SpringApplication.run(SpringCloudConfigClientApplication.class, args);}}

在 Controller 中使用@Value注解来获取 Server 端参数的值

@RestControllerpublic class HelloController {@Value("${neo.hello:error}")private String profile;@GetMapping("/info")public Mono<String> hello() {return Mono.justOrEmpty(profile);}}

测试

启动项目后访问http://localhost:13000/info返回dev说明已经正确的从 Server 端获取到了参数。到此一个完整的服务端提供配置服务,客户端获取配置参数的例子就完成了。

是不是很简单呢,其实很多东西都是这样。在我们还不了解他的时候他对我们是陌生的,当我们真的开始了解他的时候,他对我们来说其实就是那么简单。当然对于我们程序员来说,代码 看了千百遍不如敲十遍。只有多动手才是快速学习的最佳捷径。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。