springCloud-- configuración del centro de configuración

1. Introducción

En un sistema distribuido, debido a la gran cantidad de servicios, para facilitar la gestión unificada de los archivos de configuración del servicio y las actualizaciones en tiempo real, se requiere un componente del centro de configuración distribuido. En Spring Cloud, hay un componente de centro de configuración distribuido Spring Cloud Config, que admite servicios de configuración ubicados en la memoria del servicio de configuración (es decir, local), pero también en el almacén remoto de Git. En el componente de configuración de Spring Cloud, hay dos roles, uno es el servidor de configuración y el otro es el cliente de configuración.

En segundo lugar, compilar el servidor de configuración

Cree un proyecto de arranque de primavera, llamado config-server, y su 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

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

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.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>
    </properties>

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

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

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</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>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8
  • 9 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • dieciséis
  • 17
  • 18 años
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60 60
  • 61
  • 62
  • 63
  • 64
  • sesenta y cinco
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81

Agregue la anotación @EnableConfigServer a la clase Aplicación en la entrada del programa para habilitar la función del servidor de configuración. El código es el siguiente:


@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8
  • 9 9
  • 10

Debe configurar lo siguiente en el archivo application.properties del archivo de configuración del programa:

spring.application.name=config-server
server.port=8888


spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username=your username
spring.cloud.config.server.git.password=your password

  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8
  • 9 9
  • 10
  • 11
  • spring.cloud.config.server.git.uri: configura la dirección del almacén git
  • spring.cloud.config.server.git.searchPaths: configura la ruta del almacén
  • spring.cloud.config.label: configura la sucursal del almacén
  • spring.cloud.config.server.git.username: nombre de usuario para acceder al repositorio git
  • spring.cloud.config.server.git.password: contraseña de usuario para acceder al repositorio git

Si el almacén de Git es un almacén público, no puede completar el nombre de usuario y la contraseña. Si es un almacén privado, debe completarlo. Este ejemplo es un almacén público y puede usarlo con confianza.

Hay un archivo en el repositorio remoto https://github.com/forezp/SpringcloudConfig/ Hay una propiedad en el archivo config-client-dev.properties:

foo = foo versión 3

Inicie el programa: visite http: // localhost: 8888 / foo / dev

{"name":"foo","profiles":["dev"],"label":"master",
"version":"792ffc77c03f4b138d28e89b576900ac5e01a44b","state":null,"propertySources":[]}
  • 1
  • 2
  • 3

Demuestre que el centro de servicios de configuración puede obtener información de configuración de un programa remoto.

La dirección de solicitud http y la asignación del archivo de recursos son las siguientes:

  • / {application} / {profile} [/ {label}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

Tercero, construir un cliente de configuración

Recree un proyecto springboot, llamado config-client, y su archivo 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.forezp</groupId>
    <artifactId>config-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.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>
    </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.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>Dalston.RC1</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>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8
  • 9 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • dieciséis
  • 17
  • 18 años
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60 60
  • 61
  • 62
  • 63
  • 64
  • sesenta y cinco
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

Su archivo de configuración bootstrap.properties :

spring.application.name=config-client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
spring.cloud.config.uri= http://localhost:8888/
server.port=8881
  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • spring.cloud.config.label indica la sucursal del almacén remoto
  • spring.cloud.config.profile

    • archivo de configuración del entorno de desarrollo de desarrollo
    • entorno de prueba de prueba
    • ambiente pro formal
  • spring.cloud.config.uri = http: // localhost: 8888 / indica la URL del centro de servicio de configuración.

La clase de entrada del programa, escriba una interfaz API "/ hi" y devuelva el valor de la variable foo leída desde el centro de configuración.

@SpringBootApplication
@RestController
public class ConfigClientApplication {

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

    @Value("${foo}")
    String foo;
    @RequestMapping(value = "/hi")
    public String hi(){
        return foo;
    }
}

  • 1
  • 2
  • 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8
  • 9 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • dieciséis
  • 17

Abra la URL para visitar: http: // localhost: 8881 / hi , la página web muestra:

foo versión 3

Esto muestra que config-client obtiene las propiedades de foo de config-server, y config-server se lee desde el repositorio de git, como se muestra en la figura:

Azure (2) .png

Descargue el código fuente de este artículo:
https://github.com/forezp/SpringCloudLearning/tree/master/chapter

4. Materiales de referencia.

spring_cloud_config

Publicado 7 artículos originales · 69 alabanzas · 200,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/u014320421/article/details/79700094
Recomendado
Clasificación