SpringCloud--Day5

1. 配置Microserver Config

  1. 生成项目,添加config服务端和微服务

在这里插入图片描述

2.统一配置中心,现在GitHub上建议仓库
在这里插入图片描述
3.创建统一配置中心服务端
配置pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.springcloud</groupId>
    <artifactId>config</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>config</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>
    //统一配置中心服务端
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        //本身也是一个微服务
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

server.port=8082
spring.application.name=config
eureka.client.service-url.defaultZone=http://peer1:8791/eureka/,http://peer2:8792/eureka/,http://peer3:8793/eureka/

#配置GitHub地址 用户和密码 通过以下方式在GitHub上面拉取配置
#http://localhost:8082/order-b.properties 根据日志查看查询方式
#/{name}-{profiles}.yml
#/{name}/{profiles}/{label:.*}
#name服务名 profiles环境 label分支 默认master分支
#http://localhost:8082/order-dev.properties
spring.cloud.config.server.git.uri=https://github.com/xuweizhia/config-repo.git
[email protected]
spring.cloud.config.server.git.password=158262751sb.
#储存拉取下来的配置文件
spring.cloud.config.server.git.basedir=D://BaseDirs

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer//开启统一配置中心
public class  ConfigApplication {

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

4.统一配置中心客户端

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

5.以application.properties命名的文件,因为把配置文件拉取下来,SpringCloud无法辨别文件加载顺序,所以bootstrap文件作为初始加载文件,需要写出注册中心的地址。
在这里插入图片描述
6.如果GitHub上面有三个文件order.yml,order-dev.yml,order-test.yml
客户端拉取配置拉取文件,会把order.yml中配置与拉取的配置合并,所以order为节点的配置文件,把通用配置写入其中。
7.自动刷新配置,线上刷新配置文件,SpringCloudBus自动刷新配置。
config-server会从git拉取配置,在本地存一份配置文件,其他客户端从同一配置中心获取配置文件,组件Bus有通知机制,自动刷新配置。
这是一个逗比
8.配置刷新文件

#暴露消息队列服务接口
#发送http://localhost:8082/actuator/bus-refresh请求会发送刷新请求
management.endpoints.web.exposure.include=*
//检验是否从配置中心获取到Config
@RestController
//配置消息刷新消息队列通知
@RefreshScope
public class EVNController {

    @Value("${EVN}")
    private String EVN;

    @GetMapping("/evn")
    public String getEVN(){
        return EVN;
    }

}

9.从配置文件获取数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10.实现自动更新配置,配置拉取请求
本地拉取git请求方式
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40134461/article/details/83002601
今日推荐