9.4springCloud_Config配置中心
##一、搭建
###1.父工程
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>spring-boot-starter-parent 最新班委2.1.7###2.server服务端
1.pom依赖
xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>####2.application.yml配置
yaml
server:
port: 12000
spring:
application:
name: lcy-configServer
cloud:
config:
server:
git:
uri: https://gitee.com/liuchenyun/config.git #gitee你项目的地址注意:
uri: https://gitee.com/liuchenyun/config.git 这个是放在gitee上的文件 如下图:
####3.启动类上加
java
@EnableConfigServer //开启配置####4.查看gitee文件
启动项目后,项目连接了配置的gitee地址,可以直接查看文件内容,如:
http://localhost:12000/config-dev.yml###3.client客户端
####1.pom依赖
xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>####2.bootstrap.yml配置文件
注意:不是application.yml,是bootstrap.yml
yaml
spring:
cloud:
config:
name: config #看具体
profile: dev #看具体
label: master
uri: http://127.0.0.1:12000gitee上的文件名: config-dev.yml
name: config 是文件名前半段
profile: dev 是文件名后半段,还可以是pro,test,dev,对应不同环境
uri:http://127.0.0.1:12000 是服务端的地址##二、原理
1. 服务端连接着gitee上的文件
2. 客户端向服务端取文件,会下载到本地里
3. 每次请求都会本地读取配置文件
4. gitee上修改文件会被服务端监听,使本地文件修改##三、问题
1. 需要有一个单独的配置中心服务端运行,
2. 如果服务端挂了,就over了
3. 配置中心搭集群,浪费资源
版本问题:
1. springboot 现在最新版为2.1.7
2. config 现在最新版为2.1.3##四、总结
能不用尽量不用,不可能只搭一个,搭配置中心的性价比低