분산 구성 센터 : SpringCloud 마이크로 클라우드 인프라 서비스 제 6 분산

I. 서론

때문에 통합 관리, 실시간 업데이트를 용이하게하기 위해 멀티 서비스, 서비스 프로파일의 엄청난 수에 분산 시스템에서, 그래서 그들은 분산 구성의 핵심 구성 요소가 필요합니다. 봄 클라우드에서, 또한 원격 Git 저장소에 지원되는 메모리 구성 서비스 구성 서비스 (예 : 지역)를 지원하는 분산 구성 봄 클라우드 설정의 핵심 구성 요소가있다. springcloud 아키텍처는 구걸에 추가 할 수 알아보기 : 3,536,247,259을, 봄 클라우드 설정에서 어셈블리 두 가지 역할을 하나 개 설정 서버는 두 번째 설정 클라이언트입니다.

둘째, 빌드 구성 서버
부모 받는다는 프로젝트는 부모 치어 파일을 생략 :


<?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>sc-f-chapter6</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>config-server</module>
        <module>config-client</module>
    </modules>

    <name>sc-f-chapter6</name>
    <description>Demo project for Spring Boot</description>

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

    <dependencies>
        <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>

다음의 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>com.forezp</groupId>
        <artifactId>sc-f-chapter6</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

응용 프로그램 등의 입구 결합 @EnableConfigServer 주석 개방 구성 서버 기능으로 다음과 같습니다 :


@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

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

요구는 application.properties 다음 절차를 파일 구성 파일에서 구성 할 수 있습니다 :


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=
spring.cloud.config.server.git.password=

spring.cloud.config.server.git.uri : 구성은 저장소 주소 이눔
구성 depot_path의 : spring.cloud.config.server.git.searchPaths
spring.cloud.config.label : 분기 구성 저장소
spring.cloud.config.server을 .git.username : 액세스 자식 저장소에 사용자 이름
spring.cloud.config.server.git.password : 사용자 액세스 자식 저장소 암호
의 경우 공공 창고로 Git 저장소, 사용자 이름과 암호를 입력 할 수 없습니다, 그것은 개인 창고에 채우기에 필요한 경우 이 예는 오픈 창고, 사용의 용이성이다.

원격 저장소 https://github.com/forezp/SpringcloudConfig/ 파일 config-client-dev.properties 파일은 속성이 있습니다 :

foo는 = foo는 버전 3

시작 프로그램 : 방문에 http : // localhost를 : 8888 / foo는 / dev에


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

증명 구성 서비스 센터는 원격 프로그램의 구성 정보를 획득 할 수있다.

HTTP 요청 주소 매핑 및 리소스 파일을 다음과 같이 :

/ {파일 어플리케이션} / {프로필} / 라벨 {}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/ { 라벨} / {응용 프로그램} - { 프로필} .properties 파일은
셋째, 설정 클라이언트를 구축

그들의 치어 파일을 설정 클라이언트라는 springboot 프로젝트를 다시 만듭니다 :


<?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>com.forezp</groupId>
        <artifactId>sc-f-chapter6</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

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

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

</project>

구성 파일 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

spring.cloud.config.label 원격 저장소의 브랜치를 지정

spring.cloud.config.profile

DEV 개발 환경 프로파일
테스트 테스트 환경은
공식적인 환경 프로
spring.cloud.config.uri = HTTP를 : // localhost를 : 8888 / URL 구성 서비스 센터를 지정합니다.

클래스 프로그램 항목, 쓰기 API 인터페이스 "/ 안녕하세요"는 foo 변수의 반환 값은 다음과 구성의 중심에서 읽기 :

@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;
    }
}

오픈 액세스 웹 사이트 : HTTP : // localhost를 : 8881 / 안녕하세요, 웹 페이지 표시 :

foo는 버전 3

이것은로, 속성 foo는 설정 서버로부터 획득 설정 - 클라이언트를 표시하고, 설정 - 서버 자식 저장소에서 읽어 :

분산 구성 센터 : SpringCloud 마이크로 클라우드 인프라 서비스 제 6 분산

추천

출처blog.51cto.com/14622290/2458907