봄 구름 튜토리얼 (B)를 시작하기 : 구성 관리 봄 클라우드 서비스 레지스트리 항목 중 하나

를 사용하여 구성 서버, 당신은 모든 환경에서 외부 응용 프로그램 속성을 관리 할 수 있습니다. 개념의 클라이언트와 서버 봄과에 매핑  EnvironmentPropertySource추상 같은, 그래서 그들은 봄 응용 프로그램과 완벽하게 맞지는하지만, 모든 응용 프로그램은 모든 언어에서 실행 사용할 수 있습니다. 테스트하는 개발자가 응용 프로그램과 제작 배포 프로세스로서, 당신은 이러한 환경의 구성을 관리 할 수 있으며 응용 프로그램 마이그레이션을 실행하는 데 필요한 모든 것을 갖추고 있습니다 결정. 이 구성 환경의 라벨 버전을 지원하기 쉬운 및 컨텐츠 관리를위한 다양한 도구에 액세스 할 수 있도록 기본 스토리지 백엔드 서버 구현은, 자식을 사용합니다. 또한 쉽게 구현 추가하고, 스프링을 사용하여 구성을 삽입

이들은 봄 클라우드의 공식 웹 사이트 내 이해를 정교 간단하게 구성 서비스에 대해 설명합니다. 예를 들어, 우리는 웹 사이트를 구축하려는 경우, 데이터베이스 연결을 구성 데이터베이스 서버, 데이터베이스 이름, 사용자 이름 및 암호 및 기타 정보의 IP 주소를 지정해야합니다. 일반적인 방법은, 우리는 구성 파일에이 정보를 정의 할 수 있습니다, 또는 페이지 특별히이 일을 개발하도록 구성. 단지 웹 서버, 그것은 매우 편리합니다.

필요 여러 서버로 구축 할 경우에, 각 서버는 물론 동일한 구성을 할 수 있지만 유지 보수 및 동기화는 매우 귀찮은 것입니다. 나는 서비스 적어도 두 가지 시나리오의 구성을 이해 :

1) 여러 고객은 동일한 구성을 사용 : 예를 들어, 여러 서버 클러스터에 백 엔드가 동일한 데이터베이스를 사용하여, 각각의 서버가 동일한 구성을 사용하는 경우.

2) 다른 고객은 다른 구성을 사용 : 예를 들어, 일반적인 시나리오는하지만 다른 데이터베이스, 개발, 테스트, 생산 및 동일한 시스템의 사용이다

아주 편리하지 구성의 근본적인 통일성이있는 경우, 가능한 솔루션에 (예 : 네트워크 공유 디스크 등) 공유 스토리지에 이러한 구성 파일을 넣어하는 것입니다. 그래서 만은 하나 개 이상의 공유 스토리지 구성 파일을 수정해야합니다. 그러나 파일을 공유하는 방법은 여러 웹 서버가 동일한 스토리지 하드 디스크를 공유 달성하기 어려운 경우가 많습니다 특정 배포 환경에 의해 제한된다.

결손 공유 디스크 리소스 로케이터가 더 어렵습니다, 봄 클라우드의 솔루션은 봄 클라우드의 기본 구성은 GIT를 사용하여 버전 관리 서버에이 프로파일을 이동하는 것입니다. 모든 웹 서비스는 GIT에서 이러한 구성 파일을 취득하고 있습니다. 특정 웹 서버에 GIT 서버 사이에 공유 스토리지 때문에, 한 구현할 수있는 라인의 네트워크를 최대로 웹 서비스는 구성 저장소의 위치 정보를 분리.

봄 클라우드 GIT 통합 제어 애플리케이션과 상호 작용하는 서비스, 응용 프로그램은 사양에 따라 봄 클라우드 GIT에 URL을 구성해야합니다. GIT를 사용한 후, 시나리오 1 시나리오 2와 유일한 차이점은 시나리오 2 다른 클라이언트가 다른 구성 파일의 버전하지만, 파일 액세스 응용 프로그램을 사용하지만 동일하게 나타납니다. 도 1의 구성으로 봄 클라우드 서비스 구성.

의의는 예제를 계속하자 봄 클라우드 중 하나가 시작되었습니다. 등록 서비스를  계속, 그래서 "안녕하세요"가 구성 파일 helloworld.properties로부터 판독, 콘텐츠 형식은 다음과 같이

안녕하세요 = 안녕하세요

키워드 안녕하세요 "안녕하세요"의 값은 우리가 출력 원하는이다.

A. 설정 서버 만들기

 1. 구성 서버, 스프링 클라우드 설정 서버 내부 받는다는 프로젝트 구성을 만듭니다

<의존성> 
        <의 groupId> org.springframework.cloud </의 groupId> 
        <artifactId를> 스프링 클라우드 구성 서버 </ artifactId를> 
</ 의존성>

다음과 같이 전체 구성은 다음과 같습니다

코드를 복사
1 <? XML 버전 = "1.0"인코딩 = "UTF-8"?> 
 2 <프로젝트의 xmlns = "http://maven.apache.org/POM/4.0.0"의 xmlns :이 xsi = "HTTP : // WWW .w3.org / 2001 / 된 XMLSchema 인스턴스 " 
 3에서는 xsi :의 schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0. XSD "> 
 4 <modelVersion> 4.0.0 </ modelVersion> 
 5 <의 groupId> com.chry </의 groupId> 
 6 <artifactId를> springcloud.helloworld.config.server </ artifactId를> 
 7 <버전> 0.0.1-SNAPSHOT < / 버전> 
 8 <포장> 단지 </ 포장> 
 9 <이름> helloworld.config.server </ 이름> 
10 <설명> 데모 구성 서버 </ DESCRIPTION> 
11 
12 <부모> 
13 <의 groupId> org.springframework.boot </의 groupId>부모> 
14 <artifactId를> 스프링 부팅 스타터 부모 </ artifactId를>
15 <버전> 1.5.3.RELEASE </ 버전> 
16 <relativepath를 /> <! - 저장소에서 룩업 상위 -> 
17 </ 부모> 
18 
19 <특성> 
20 <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> 
21 <project.reporting.outputEncoding> UTF-8 </project.reporting.outputEncoding> 
22 <java.version> 1.8 </java.version> 
23 </ 속성> 
24 
25 <의존성> 
26 <! - 유레카 서버 -> 
27 <의존성>  
28 <의 groupId> org.springframework.cloud </의 groupId>
29 <artifactId를> 스프링 클라우드 스타터 유레카 </ artifactId를> 
30 </ 의존성>
31 <의존성>
32 <의 groupId> org.springframework.cloud </의 groupId> 
33 <artifactId를> 스프링 클라우드 스타터 유레카 서버 </ artifactId를> 
34 </ 의존성> 
35 <의존성> 
36 <의 groupId> org.springframework.cloud </ 의 groupId> 
37 <artifactId를> 스프링 클라우드 구성 서버 </ artifactId를> 
38 </ 의존성> 
39 <! - 스프링 부팅 테스트 -> 
40 <의존성> 
41 <의 groupId> org.springframework.boot </의 groupId> 
42 <artifactId를> 스프링 부팅 스타터 테스트 </ artifactId를> 
43 <범위> 시험 </ 범위> 
(47) <dependencyManagement> 
48 <의존성> 
44 </ 의존성>
45 </ 의존성> 
46 
64 </ 플러그인>
49 <의존성> 
50 <의 groupId> org.springframework.cloud </의 groupId> 
51 <artifactId를> 스프링 클라우드 종속성 </ artifactId를> 
52 <버전> Dalston.RC1 </ 버전> 
53 <type>은 POM </ type>은 
54 <범위> 수입 </ 범위> 
55 </ 의존성> 
56 </ 의존성> 
57 </ dependencyManagement> 
58 
59 <작성> 
60 <플러그인> 
61 <플러그인> 
62 <의 groupId> org.springframework.boot </의 groupId> 
63 <artifactId를> 스프링 부팅 받는다는 - 플러그인 </ artifactId를> 
65 </ 플러그인> 
66 </> 빌드 
67 
68 <저장소> 
69 <저장소> 
70 <ID> 스프링 이정표 </ ID> 
71 <이름> 스프링 연혁 </ 이름> 
72 <URL> https://repo.spring.io/milestone < / URL> 
73 <스냅> 
74 <활성화> 거짓 </ 활성화> 
75 </ 스냅> 
76 </ 저장소> 
77 </ 저장소> 
78 
79 </ 프로젝트>
코드를 복사

2. 그것은 구성 서버로 EnableConfigServer의 이야기 @, 또한 봄 부팅 응용 프로그램, 구성 서버를 만듭니다. 마찬가지로, 우리는 서비스 센터에 등록 @EnableEurekaClient를 사용합니다.

코드를 복사
1 개 패키지 springcloud.helloworld.config.server; 
 2 
 세 수입 org.springframework.boot.SpringApplication; 
 4 수입 org.springframework.boot.autoconfigure.SpringBootApplication; 
 5 수입 org.springframework.cloud.config.server.EnableConfigServer; 
 6 수입 org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 
 7 
 8 @EnableEurekaServer 
 9 @EnableConfigServer 
10 @SpringBootApplication 
11 공용 클래스 ConfigServerApplication { 
12 공공 정적 무효 메인 (문자열 []에 args) { 
13 SpringApplication.run (ConfigServerApplication.class, 인수); 
14} 
15}
코드를 복사

3. 구성 서버 구성 파일 appication.yml, 구성 파일에주의를 기울 파일 searchPaths 구성 파일 때문에 특정, 당신은 서버 측에 특정 프로파일 이름을 지정할 필요가 없습니다 창고의 폴더 경로에 위치하고 있으며, URL의 GIT 저장소 서버 주소입니다 응용 프로그램 구성 파일 (즉, 클라이언트) 결정은 무엇입니까.

코드를 복사
유레카 : 
  클라이언트 : 
    것은 serviceUrl : 
      defaultZone : HTTP : // localhost를 : 8761 / 유레카 / 
서버 : 
  포트 : 8888 

봄 : 
  구름 : 
    설정 : 
      서버 : 
        자식 : 
          URI : https://git.oschina.net/chrywhy/test 
          searchPaths : 봄 구름 / helloworldConfig는 
  응용 프로그램 : 
    이름 : 설정 - 서버
코드를 복사

눈에 보이는 반응으로, 8888 / ABC / XYZ : // localhost를 4. 시작 설정 서버는 HTTP에 액세스 할 수 있습니다. 이 구성 파일의 특정 내용을 포함하지 않은 출력 응답은 설정 서버 구성이 GIT에 application.yml 우리의 서비스에 액세스 할 수 있습니다, 설명

URL은 유효한 수단이 설명 될 필요가있다. 우리는 당신이 진짜 필요하지 않습니다 XYZ 부담 이름을 입력하는, ABC 여기, XYZ 프로파일의 이름, 응용 프로그램 이름이 출력 ABC에서 관심을 볼 수 설정 서버는 단지 REST 인터페이스 응용 프로그램이라고 ABC에서 반환 XYZ라고 할 때, 구조 GIT 구성 환경 프로파일.

REST 인터페이스 설정 서버는 봄 클라우드는 다음과 같이 몇 가지 공식 문서가 여러 옵션 URL이 될 수 제공, 제공 :

  1. / 애플리케이션 {} / {프로필} / {라벨}]
  2. /{application}-{profile}.yml
  3. /{label}/{application}-{profile}.yml
  4. /{application}-{profile}.properties
  5. /{label}/{application}-{profile}.properties

수 8888 / config-client-dev.properties : 우리는 GIT 저장소에 프로파일 스프링 구름 / helloworldConfig가 / config-client-dev.properties이있는 경우 예를 들어, 세 번째 형식은, 다음 HTTP :. // localhost를 방문 디스플레이 구성 파일의 내용을 표시합니다. 이 예에서, 응용 프로그램 이름이 "설정 클라이언트"(우리의 클라이언트가 생성됩니다도 이하)이며, 프로파일 이름은 dev에, 파일 접미사 .properties 파일입니다

이 예에서 때문에 유레카 서비스 센터의 구성, 그래서 유레카 서버에 등록 유레카 클라이언트로이 설정 서버를 수행 할 수 있습니다에서 http : // localhost를 : 8761, 당신은 서비스 센터에 등록하지 않으면 우리는 설정 서버를 시작 볼뿐만 아니라, 이 구성은 삭제

 

 두 . 설정 클라이언트 만들기

1. 다음과 같이, pom.xml 파일을 받는다는 프로젝트를 만듭니다 :
코드를 복사
1 <? XML 버전 = "1.0"인코딩 = "UTF-8"?> 
 2 <프로젝트의 xmlns = "http://maven.apache.org/POM/4.0.0"의 xmlns :이 xsi = "HTTP : // WWW .w3.org / 2001 / 된 XMLSchema 인스턴스 "XSI :의 schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> 
 3 <modelVersion> 4.0.0 </ modelVersion> 
 4 <의 groupId> com.chry </의 groupId> 
 5 <artifactId를> Springcloud.helloworld.config.client </ artifactId를> 
 6 <버전> 0.0.1-SNAPSHOT </ 버전> 
 7 <이름> Springcloud.helloworld.config.client </ 이름> 
 8 <포장> 단지 </ 포장> 
 9 <설명> 데모 봄 구성 클라이언트 </ 설명>
10 
11 <부모>  
12 <의 groupId> org.springframework.boot </의 groupId>
13 <artifactId를> 스프링 부팅 스타터 부모 </ artifactId를>
14 <버전> 1.5.3.RELEASE </ 버전> 
15 <relativepath를 /> <! - 저장소에서 룩업 상위 -> 
16 </ 부모> 
17 
18 <특성> 
19 <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> 
20 <project.reporting.outputEncoding> UTF-8 </project.reporting.outputEncoding> 
21 <java.version> 1.8 </java.version> 
22 </ 속성> 
23 
24 <의존성> 
25 <의존성> 
26 <의 groupId> org.springframework.cloud </의 groupId> 
27 <artifactId를> 스프링 클라우드 스타터 유레카 </ artifactId를>의존성> 
30 <의 groupId> org.springframework.boot </의 groupId>artifactId를> 스프링 클라우드 스타터 유레카 </ artifactId를> 
28 </ 의존성>
29 <의존성> 
31 <artifactId를> 스프링 부팅 스타터 웹 </ artifactId를> 
32 </ 의존성> 
33 <의존성> 
34 <의 groupId> org.springframework.cloud </의 groupId> 
35 <artifactId를> 스프링 클라우드 스타터 -config </ artifactId를> 
36 </ 의존성> 
37 <의존성> 
38 <의 groupId> org.springframework.boot </의 groupId> 
39 <artifactId를> 스프링 부팅 스타터 테스트 </ artifactId를> 
40 <범위> 시험 </ 범위> 
41 </ 의존성> 
42 </ 의존성> 
43 
44 <dependencyManagement>
45 <의존성> 
46 <의존성>
47 <의 groupId> org.springframework.cloud </의 groupId> 
48 <artifactId를> 스프링 클라우드 종속성 </ artifactId를> 
49 <버전> Dalston.RC1 </ 버전> 
50 <type>은 POM </ type>은 
51 <범위> 수입 </ 범위> 
52 </ 의존성> 
53 </ 의존성> 
54 </ dependencyManagement> 
55 
56 <작성> 
57 <플러그인> 
58 <플러그인> 
59 <의 groupId> org.springframework.boot </의 groupId> 
60 <artifactId를> 스프링 부팅 받는다는 - 플러그인 </ artifactId를> 
61 </ 플러그인> 
62 </ 플러그인> 
63 </> 빌드 
64
65 <저장소> 
66 <저장소> 
67 <ID> 스프링 이정표 </ ID> 
68 <이름> 스프링 연혁 </ 이름> 
69 <URL> https://repo.spring.io/milestone </ URL> 
70 <스냅 샷> 
71 < 활성화> 거짓 </ 활성화> 
72 </ 스냅> 
73 </ 저장소> 
74 </ 저장소> 
75 
76 
77 </ 프로젝트>
코드를 복사

2. 클라이언트로 스프링 부팅 응용 프로그램을 만듭니다

코드를 복사
1 개 패키지 springcloud.helloworld.config.client; 
 2 
 세 수입 org.springframework.beans.factory.annotation.Value; 
 4 수입 org.springframework.boot.SpringApplication; 
 5 수입 org.springframework.boot.autoconfigure.SpringBootApplication; 
 6 수입 org.springframework.web.bind.annotation.RequestMapping; 
 7 수입 org.springframework.web.bind.annotation.RestController; 
 8 
 9 @SpringBootApplication 
10 @RestController 
11 공용 클래스 ConfigClientApplication { 
12 
13 공공 정적 무효 메인 (문자열 []에 args) { 
14 SpringApplication.run (ConfigClientApplication.class, 인수); 
15} 
16 
17 @Value ( "$ {} 안녕하세요") 
18 스트링 헬로;
19 @RequestMapping (값 = "/ 헬로") 
20 공중 문자열 안녕하세요 () { 
21 반환 헬로; 
22} 
23}
코드를 복사

이 응용 프로그램은 매우 간단합니다, 안녕하세요 구성 서버에서 클라이언트 서버는 GIT 서버, 안녕하세요 구성 항목의 값을 액세스 클라이언트에 다시 얻기 위해, 나중에 나머지 구성 서버 구성 서버 요청을 제출 구성 항목의 값을 얻는 것입니다.

3. 구성 클라이언트 액세스 할 수있는 구성 서버의 URL뿐만 아니라 특정 GIT 지점을 정의하는 응용 프로그램 구성 파일이 필요합니다. 이 프로필은 bootstrap.yml (또는 bootstrap.properties) 인

코드를 복사
: 스프링 1 
 2 용도 : 
 3 명 : 클라이언트 구성 
 4 구름 : 
 5의 구성 : 
 6 라벨 : 마스터 
 7 정보 : dev에 
 8 URI : HTTP : // 서라도 / 
 9 서버가 있으며, : 
10 포트 : 8881
코드를 복사

이 구성은 애플리케이션의 이름, 디바이스, 마스터와 GIT 분기를 사용하여 프로파일 (애플리케이션에서 질문에 조립 된 구성 서버 앞에 사용되는) 구성 - 클라이언트로 정의한다. url은 설정 서버 주소입니다. 질문은 그래서, 우리는 프로파일 이름, 그것은 무엇 구성 파일의 다음 이름을 정의하지 않는 것? 이것은 차례로 구성을 통해 대회의 아이디어를 반영 곳 봄 클라우드 대회, 다음과 같은 방식으로 구성된 응용 프로그램 구성 파일 이름 : {응용 프로그램} - {프로필} .properties의 (또는 {응용 프로그램} - {프로필} .yml). 예를 들어, 우리는 우리가 단지 프로파일을 작성해야이 구성 파일이 config-client-dev.properties이다 사용 스프링 구름이 다음과 같이 helloworldConfig 거기에 GIT에서 / config-client-dev.properties, 읽기 / :

GIT에서 안녕 = 안녕하세요

 4. 시작 설정 - 클라이언트 응용 프로그램은 HTTP에 액세스 할 수 있습니다 : // locahost / 8881 / 안녕하세요, 당신이 직접 안녕하세요 특정 콘텐츠를 구성하지 않는 응용 프로그램 자체가 특정 구성 파일을 지정하지 않은 볼 수 있습니다,이 봄 구름 원하는 프레임 워크는 설정 서버에 발표했다.

 

구성 업데이트

이 시점에서, 구성 관리 간단한 예제 봄 구름이 완료되었지만 클라이언트가 자동으로 서비스 측면의 변화를 감지하지 않습니다. 예를 들어, 우리는 GIT에있는 파일의 내용을 수정, 그러나 어떤 경우에도 구성의 변화를 반영하지 수, 페이지의 클라이언트 측을 새로 고칩니다. 다음 섹션에서는 봄 클라우드 자동 업데이트 메커니즘의 구성을 설명합니다

추천

출처www.cnblogs.com/7788IT/p/11324214.html