분산 시스템에서는 각 프로젝트에 구성 파일이 흩어져있어 중앙에서 관리하기가 어렵거나 구성을 수정하려면 적용되기 전에 다시 시작해야합니다. 다음으로 스프링 클라우드 구성을 사용 하여이 통증 지점을 해결합니다.
구성 서버
Config-Server를 구성 서버로 사용하고 종속성 만 추가하면됩니다.
<pectionency> <groupid> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Config-Server </artifactid> </fectionency>
application.yml에서 구성 :
Spring : Application : Name : Config-Server # Name Cloud : Config : git : uri : uri : // users/yangdd/documents/code/github/config-Repo # 로컬 리포지토리 사용 (테스트), 형식 : // $ {user.home}/config-Repo가 Wind https://github.com/yangdd1205/spring-cloud-master/ #username/ #username : username #password : password #password #default-label : commit #commit id, branch name, tag name, default value는 마스터 #검색- #검색어입니다.봄 프로젝트는 일반적으로 "컨벤션은 구성보다 큽니다"라는 원칙을 가지고 있습니다. 따라서 GIT의 구성 파일은 일반적으로 {application}-{profile} .yml 또는 {application}-{profoy} .properties의 이름을 따서 명명되었습니다.
Config-Repo의 마스터 브랜치에 두 개의 파일 Client-Dev.yml이 있습니다.
정보 : Master-Dev
client-prod.yml :
정보 : 마스터 프로 드
구성 브랜치에는 두 개의 파일 Client-dev.yml이 있습니다.
정보 : config-dev
client-prod.yml :
정보 : config-prod
CONFIG-SERVER 다음 맵핑 관계를 통해 GIT의 구성 파일에 액세스 할 수 있습니다.
/{application }/ {profile }= ]/ {Application }- (profile }.yml/ {label }/ {application }- {profile}. {application }- {profile} .yml/ {pollation }- (profile). {profile}http : // localhost : 4001/client-dev.yml
구성 클라이언트를 구성합니다
Config-client를 구성 클라이언트로 사용하고 종속성을 추가합니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트-스타터-web </artifactid> <pectionency> <groupid> org.springframework.cloud </groupid> <atifactid> spring-cloud-starter-config </arevicactid>
bootstrap.yml에서 구성 (bootstrap.yml은 application.yml 전에로드) :
Spring : Application : Name : Client Cloud : Config : uri : http : // localhost : 4001/## 구성 센터의 주소를 나타냅니다. 구성 중심지 프로파일 : Dev #은 Spring.profiles.active 속성과 동일하지만 우선 순위는 Spring.Profiles.Profiles.Active # LABEL을 지정하지 않으면 Spring.Profiles.
config-client에서 testController를 만듭니다.
@RestControllerPublic 클래스 TestController {@Value ( "$ {info}") 개인 문자열 정보; @requestmapping (value = "/getInfo") public String getInfo () {return this.info; }}http : // localhost : 4002/getinfo를 방문하십시오
config-client configuration 파일의 프로파일을 prod로 수정하고 결과를 볼 수 있도록 액세스하십시오.
이제 통합 방식으로 구성 파일을 관리하기 위해 구성 파일을 구현했지만 구성 파일을 수정 한 후 어떻게 다시 시작하고 적용 할 수 없습니까?
config-client에 종속성을 소개합니다.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-승인기 </artifactid> </fectionency>
동적 새로 고침이 필요한 클래스에 @refreshscope를 추가하십시오. 여기에서 TestController에 추가하십시오. 구성 파일에서 액추에이터의 권한 인증을 비활성화합니다.
관리 : 보안 : 활성화 : False
프로젝트를 다시 시작하십시오, http : // localhost : 4002/getinfo 결과는 다음과 같습니다. config-dev, 이제 config-dev.yml 파일을 수정하십시오.
정보 : config-dev-1.0
액추에이터 방법을 호출하고 수동으로 새로 고치십시오. http : // localhost : 4002/새로 고침 참고 : 게시물이어야합니다. 변경 사항이 무엇인지 알 수 있습니다.
[ "정보"]
http : // localhost : 4002/getinfo를 다시 방문하면 결과는 다음과 같습니다. config-dev-1.0.
구성을 동적으로 새로 고칠 수는 있지만 새로 고침 방법을 매번 수동으로 호출해야한다는 것을 발견했습니다. 1,000 개의 서비스가 있으면 1,000 번 전화해야합니다. 더 좋은 방법이 있습니까? 그것은 스프링 클라우드 버스와 함께 사용하는 것입니다.
사용 가능합니다
이제 구성 서버는 단일 지점 서비스이며 후자의 구성 클라이언트가 끊어지면 사용되지 않습니다. 따라서 세대에서 구성 서버를 고도로 사용할 수 있어야하므로 어떻게해야합니까? 매우 간단합니다. 앞에서 언급 한 Eureka의 고 가용성과 마찬가지로 여러 구성 서버 만 배포하면됩니다.
우리는 Project Eureka를 항구와 함께 등록 센터로 사용합니다 : 7001.
Config-Server를 PORT : 4003과 함께 CONFIG-SERVER-1에 복사하고 두 구성 서버를 레지스트리 센터에 등록하십시오.
레지스트리에 config-client를 등록하고 Eureka에서 구성 서버를 가져 오도록 지정하십시오.
Spring : Cloud : Config : #uri : http : // localhost : 4001/## 구성 센터의 주소를 나타냅니다. 구성 서버 주소를 직접 지정합니다. 프로필 : dev #label : config discovery : enabled : config-server # config # config server service name을 얻습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.