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는 설정 서버로부터 획득 설정 - 클라이언트를 표시하고, 설정 - 서버 자식 저장소에서 읽어 :