欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Cloud Config 搭建

程序员文章站 2022-07-03 19:46:27
...

Spring Cloud Config 搭建
使用idea 工具 搭建 spring cloud config 并集成 eureke .

一 、 通过搭建本地config 配置文件 管理配置文件

1,idea 创建新maven项目。

Spring Cloud Config 搭建
按照自己的需求填写。 项目名称为 spring_config 。包路径为 com.ylz.spring_boot.config

Spring Cloud Config 搭建
finish 完成。
Spring Cloud Config 搭建
删除 src 文件夹。
只保留 pom.xml文件即可。

2,创建maven子模块:

spring_config_config 配置中心
spring_client 客户端
spring_eureke eureke服务

spring_eureke 监听 config 服务端和客户端。
spring_config_config 统一配置客户端的配置文件。
spring_client 加载服务器端配置。

1,创建config配置中心。
创建子模块:

Spring Cloud Config 搭建
这里选择 spring initializr 这里集成了spring boot 的工具。
Spring Cloud Config 搭建

按照自己的项目填写。

Spring Cloud Config 搭建
Next 选择 左侧 spring cloud config -> config server
Spring Cloud Config 搭建
点击 next
Spring Cloud Config 搭建
finish 完成。

目录结构如下: spring_client 是下一步创建的。默认没有

Spring Cloud Config 搭建

配置 config pom 以及 resource 文件:按照目录结构 创建文件。

Spring Cloud Config 搭建
Spring Cloud Config 搭建

文件内容如下:

Spring Cloud Config 搭建
Spring Cloud Config 搭建
Spring Cloud Config 搭建
Spring Cloud Config 搭建
Spring Cloud Config 搭建
Spring Cloud Config 搭建
Spring Cloud Config 搭建

pom.xml文件如下:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ylz.spring_boot.config</groupId>
    <artifactId>spring_config_config</artifactId>
    <version>0.0.1</version>
    <name>spring_config_config</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.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-server</artifactId>
        </dependency>

        <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>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </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>

3 创建 config client 客户端:

前面的创建module 一样:到这一步选择 config client
Spring Cloud Config 搭建
目录结构如下:
Spring Cloud Config 搭建
增加和修改配置文件: 文件内容为空

Spring Cloud Config 搭建
填写内容如下:
Spring Cloud Config 搭建
修改main 函数
Spring Cloud Config 搭建

pom.xml 文件:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ylz.spring_boot.client</groupId>
    <artifactId>spring_client</artifactId>
    <version>0.0.1</version>
    <name>spring_client</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR1</spring-cloud.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </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>

4 启动 spring_config_config , spring_client .

输入: http://localhost:9000/hi 显示如下内容;配置完成。

Spring Cloud Config 搭建
5 集成eureke

创建 eureka module spring_eureka
前面步骤一样。这里选择 spring_cloud discovery -> eureka server .
Spring Cloud Config 搭建
目录结构如下:
Spring Cloud Config 搭建
我们修改文件:

Spring Cloud Config 搭建
配置内容:

Spring Cloud Config 搭建
配置文件如下:

server.port=8761
eureka.instance.hostname=localhost
###eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

pom.xml文件如下:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ylz.spring_boot.eureka</groupId>
    <artifactId>spring_eureka</artifactId>
    <version>0.0.1</version>
    <name>spring_eureka</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <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>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </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>

因为要让 eureka 监听到 config 我们修改 spring_config_config :
Spring Cloud Config 搭建

Spring Cloud Config 搭建

Spring Cloud Config 搭建

因为要让 eureka 监听到 client 我们修改 spring_client :

Spring Cloud Config 搭建

Spring Cloud Config 搭建

Spring Cloud Config 搭建
最终展示效果。 监听到两个服务器 端口分别为 8888 9000

二 、 通过 git 管理 config 配置文件 管理配置文件