이전 블로그에서는 구성 파일을 해당 서비스에 배치했지만이를 수행하는 데는 한 가지 단점이 있습니다. 구성이 수정되면 온라인으로 가기 전에 구성 파일을 종료 한 다음 수정해야합니다. 서비스가 거의 없다면이를 이해하는 것이 이해할 수 있습니다. 그러나 수백 개의 서비스가있는 경우 현재 분산 구성 관리가 필요합니다. 이 문제를 해결하기 위해 스프링 클라우드 구성이 작성되었습니다. 다음은 분산 구성 센터의 구성을 구현하기위한 Gitlab의 조합입니다. Spring Cloud Configuration Center는 서버 엔드 및 클라이언트 엔드로 구성됩니다.
전제 조건 : Gitlab의 프로젝트에서 새 구성 파일 configserver-dev.properties 만들기
1. 서버 구성
1. 종속성 추가
<pectionency> <groupid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Config-Server </artifactid> </fectionency>
2. 응용 프로그램 메인 클래스에서 지원을 활성화합니다
@enableconfigserver
3. application.yml 파일을 구성합니다
서버 : 포트 : 8888 스프링 : 응용 프로그램 : 이름 : 구성 클라우드 : 구성 : 서버 : git : https : https : https : https : https : https : https : https : https : https : https://gitlab.xxx.git # gitlab 리포지토리의 주소를 구성합니다. search-paths : /config-Repo # gitlab 리포지토리 주소의 상대 주소는 다중, 사용 및 분할으로 구성 할 수 있습니다. 사용자 이름 : 사용자 이름 # gitlab repository 계정 비밀번호 : 당신의 비밀번호 # gitlab 리포지토리 비밀번호
참고 : 구성 파일이 git 저장소의 루트 디렉토리에 배치되면 SearchPaths 매개 변수를 사용할 필요가 없습니다. 이 예제의 구성 파일은 Config-Repo Directory에 있으므로 SearchPaths 매개 변수를 사용하여 Config-Repo Subdirectory를 검색하도록 구성 서버를 프롬프트하십시오.
4. 서버를 시작하고 http : // localhost : 8888/configserver/dev/master를 입력하십시오.
{ "name": "configserver", "profiles": [ "dev"], "label": "mas "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties", "source": { "name": "chhliuxyh", "hello": "나는 세계의 왕 !!!", "프로필": "프로필"}}}서버 측은 이미 Gitlab에서 구성 파일을 읽을 수 있음을 알 수 있습니다. 아래 형태로 Gitlab의 리소스에 액세스 할 수 있습니다.
/
예를 들어, 입력 : http : // localhost : 8888/configserver-dev.yml은 다음과 같습니다.
안녕하세요 : 저는 세상의 왕입니다 !!! 이름 : chhliuxyh 프로파일 : 프로파일-디폴트
2. 클라이언트를 구성합니다
1. POM 의존성을 추가하십시오
<pectionency> <groupId> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Starter-Config </artifactid> </fectionency> <groupide> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-web </arepifactid>
2. bootstrap.yml 파일을 구성하십시오
참고 : 여기에 구성 파일은 bootstrap.properties 또는 bootstrap.yml 파일에 배치해야합니다. 구성 구성이 Application.Properties에 앞서 있으며 bootstrap.properties의로드도 Application.Properties에 의해 전적으로 예정되기 때문입니다.
서버 : 포트 : 8889 스프링 : 응용 프로그램 : 이름 : configserver # 구성 파일의 접두사와 일치해야합니다. 예를 들어, 여기의 구성 파일 이름은 configserver-dev.properties이므로 configserver cloud : config : uri : http : // localhost : 8888/// Spring Cloud Config Server의 URL 프로필을 구성해야합니다.
3. 클라이언트를 확인하십시오
클라이언트에 새 컨트롤러를 추가하십시오
패키지 com.chhliu.springcloud.config; org.springframework.beans.factory.annotation.value import; org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; org.springframework.cloud.context.config.annotation.refreshscope; org.springframework.web.bind.annotation.getMapping; org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @RestController // annotation @RefreshScope는 Config 클라이언트가 서버 구성이 공개 클래스를 변경할 때 주입 된 속성 값을 새로 고침 함을 나타냅니다. 공개 클래스 SpringCloudConfigClientApplication {public static void main (Strings) {springApplication.run (springloudConfigg, Arths); } @Value ( "$ {hello}") // gitlab 구성 파일의 속성을 읽습니다. 값을 읽으면 클라이언트가 OK 개인 문자열 프로파일임을 의미합니다. @GetMapping ( "/hello") public String hello () {return this.profile; }}브라우저를 방문하십시오 : http : // localhost : 8889/hello, 결과는 다음과 같습니다.
나는 세상의 왕입니다 !!!
이는 클라이언트가 이미 서버에서 값을 얻을 수 있음을 의미합니다.
3. 동적 새로 고침
클라이언트를 다시 시작하지 않고 Spring Cloud 구성 관리 구성 구성 업데이트
1. Gitlab 저장소의 configserver-dev.properties 구성 파일에서 Hello에 해당하는 속성 값을 업데이트하십시오.
2. http : // localhost : 8888/configserver/dev/mas
3. conf 클라이언트에게 게시물 요청을 보내십시오 http : // localhost : 8889/Refresh, Return 200 OK. http : // localhost : 8889/hello 다시 방문하십시오.
추신 : 동적 새로 고침을 얻으려면 POM 파일에 다음 스타터를 추가해야합니다.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-승인기 </artifactid> </fectionency>
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.