配置中心

在生产阶段,微服务的项目每一个功能模块都是一个微服务,而且某个功能模块的微服务通常不会一台,它们会以集群的方式存在,主要的目的是为了负载均衡、系统安全。
但是也会存在一些问题:后期维护的问题、配置的问题

配置中心目的:

就是为了让一个集群中的微服务的application配置文件保持一致。

原理:

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_spring boot

测试步骤:

前提条件:在windows下安装了git

①创建一个远程仓库(码云或者github)

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_微服务_02

②将远程仓库克隆到本地,随便到任意一个文件夹下,右键开启git的命令行工具

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_java_03

③进入拉下来的文件夹,在该文件夹下创建一个application.yml文件

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_java_04

打开文件添加以下内容

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_微服务_05

④将文件提交到远程仓库

首先先进入java63本地仓库主目录中

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_git_06


Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_spring_07

•将文件添加到缓冲区

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_微服务_08

•提交到本地仓库

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_git_09

•推送到远程仓库

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_spring_10

⑤创建一个配置中心微服务,需要单独的运行,然后导入依赖

<dependencies>
		<!-- spring boot -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- 热部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
		<!-- 配置中心 -->
		<dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-config-server</artifactId>
		    <version>2.1.0.RELEASE</version>
		</dependency>
	</dependencies>

⑥创建application.yml文件,添加以下内容

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_git_11

⑦编写启动类,运行配置中心

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_微服务_12

⑧启动配置中心,打开浏览器进行测试

在浏览器地址栏中输入以下内容,获取配置文件中指定环境的配置

http://localhost:8888/application/test

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_微服务_13

案例:微服务从配置中心中获取配置信息

①在woniu63目录下创建application-client.yml文件,指定product模块的配置,然后将product模块的application.yml文件中的配置信息拷贝一份过来,适当做些修改:端口号、instance id

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_git_14

②将application-client.yml文件推送到远程仓库中

方法参考前面步骤

③创建一个product模块,它的application.yml文件是来自配置中心中(通过配置中读取到远程仓库中的内容)将8001中除了application.yml文件以外的文件、pom都拷贝一份到8003中,目录结构如下:

Spring cloud nacos 配置中心 不刷新 springcloud配置中心作用_spring boot_15

④在pom中引入配置中心client的依赖

<!-- 配置中心client -->
		<dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-config-client</artifactId>
		    <version>2.1.0.RELEASE</version>
		</dependency>

## ```⑤在resources目录下创建bootstrap.yml文件,该文件的作用主要是用来在启动程序时读取application.yml文件之前加载一些其他的数据,这里就用来从配置中心中读取想要的数据,bootstrap.yml和application.yml都是spring boot程序默认支持的文件,而且bootstrap.yml是在执行application.yml之前执行。 添加以下内容:主要是配置用来连接配置中的内容

都启动完毕之后,注意观察注册中心是否注册到有微服务,如果有表示成功!