복붙노트

[SPRING] 원격 클라우드를 사용할 수없는 경우 Spring Cloud Config 서비스에 대한 로컬 대체 설정을 어떻게 설정합니까?

SPRING

원격 클라우드를 사용할 수없는 경우 Spring Cloud Config 서비스에 대한 로컬 대체 설정을 어떻게 설정합니까?

우리는 우리의 서비스를 위해 Spring Cloud Config를 사용할 계획이다. 가장 큰 걱정은 컨테이너가 시작될 때 github에 의존하여 항상 설정 파일을 가져올 수 있다는 것입니다. github이 작동하지 않는 경우 문제를 완화하는 가장 좋은 방법은 무엇입니까?

나는 configs의 로컬 폴더를 백업으로 저장하고 application.yml을 폴백으로 설정할 것을 고려하고 있었다. (나는 그 방법을 모른다).

나는 복합 환경 저장소 (Composite Environment Repositories) 여기를보십시오 : 2.1.8 절

그러나 그것은 진술한다 :

즉, 자식 검색에 실패하면 다시 컴포지트의 로컬 구성 요소로 폴백하지 않습니다. 나는 그랬 으면 좋겠다. 비슷한 문제를 처리 한 사람이 있습니까? 어떻게 해결하셨습니까?

다음은 모범 사례에 대한 좋은 기사입니다. 그러나 사례 1에 대한 해결 방법이 필요합니다. GIT 저장소 가용성에 대한 우수 사례

해결법

  1. ==============================

    1.Spring-Cloud에는이 문제를 처리 할 수있는 구성 등록 정보가 있습니다.

    Spring-Cloud에는이 문제를 처리 할 수있는 구성 등록 정보가 있습니다.

    spring.cloud.config.server.git.basedir = / your / config / local / fallback / 디렉토리

    배경 지식을 얻으려면 설명서를 참조하십시오. http://cloud.spring.io/spring-cloud-static/Finchley.RC1/single/spring-cloud.html#_version_control_backend_filesystem_use

    그래서 본질적으로 여기서 일어나는 일은 - 응용 프로그램이 spring.cloud.config.server.git.uri = https : // your-git / config-repo에서 설정 한 git 저장소에 처음 연결할 수있는 한 .git, config-server / container startup에서 spring.cloud.config.server.git.basedir에 정의 된 디렉토리가 로컬에 생성되고 기본적으로 spring-cloud는 구성을이 디렉토리에 복제하여 대체 파일로 사용할 수있게합니다 .

    따라서 git 저장소에 도달 할 수 없을 때마다 spring-cloud는이 기본 디렉토리에서 구성을 선택합니다.

    주목해야 할 중요한 사항 :

    구성 서버 시작시에만 자식 구성을 다시 복제하고 싶지 않다면 spring.cloud.config.server.git.clone-on-start 속성이 true로 설정되지 않았거나 완전히 설정되지 않았는지 확인하십시오 - 그렇지 않으면 클라우드 구성 서비스를 다시 시작할 때마다 구성이 삭제되고 다시 복제되므로 해당 시점에 리포지토리를 사용할 수 없으면 응용 프로그램이 시작되지 않습니다. 원하지 않을 수도 있습니다.

    그러나 spring.cloud.config.server.git.clone-on-start가 false로 설정되거나 전혀 설정되지 않은 경우 (기본값은 false), git 저장소는 필요할 때만 복제됩니다. 따라서 저장소에 도달 할 수없는 경우 spring-cloud는 정상적으로 폴백하여 spring.cloud.config.server.git.basedir에서 구성을 선택합니다.

    애플리케이션 설정 서버 (또는 컨테이너)가 재시작되고 자식 저장소에 도달 할 수없는 경우에도 아래와 같이 표시됩니다.

    No custom http config found for URL: https://your-git/config-repo.git/info/refs?service=git-upload-pack
    ... s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@3a26f314: startup date [Mon Oct 15 22:01:34 EDT 2018]; root of context hierarchy
    ... o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/your/config/local/fallback/directory/application.properties
    

    다음 행을 주목하십시오.

    속성 소스 추가 : file : /your/config/local/fallback/directory/application.properties

    그것은 마술이 일어나는 곳입니다.

    따라서 spring.cloud.config.server.git.basedir을 config-server의 첫 번째 시작 전에 fallback으로 사용할 수있게하려면 (그리고 시작 중에 git repo에 도달 할 수 있는지 여부를) 전달할 수 있습니다. 다음 단계를 수행하십시오.

  2. from https://stackoverflow.com/questions/52486278/how-do-i-setup-a-local-fallback-config-for-spring-cloud-config-service-incase-re by cc-by-sa and MIT license