source

스프링 구성 서버 - 해당 레이블 없음: 마스터

ittop 2023. 7. 21. 21:55
반응형

스프링 구성 서버 - 해당 레이블 없음: 마스터

Git 서버의 구성을 사용하는 간단한 Spring Cloud Config Server가 있습니다.

ConfigServer bootstrap.yml :

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri: ssh://git@mydomain:myport/myrepo.git
          searchPaths: "configurations/{application}/{profile}"
server:
  port: 8888

때 "ConfigServer"에서 할 수 .http://localhost:8888/myapp/test하면 ConfigServer를 합니다.No such label: master내가 때리면http://testserverip:8888/myapp/test.

어떤 도움이라도 주시면 감사하겠습니다!

enter image description here

제가 이 답변을 매우 늦게 올린다는 것을 알고 있습니다.하지만 다른 사람들이 도움이 될 수 있도록 계속 게시하고 있습니다.현재 GitHub의 기본 지점 이름은 "main"이지만 Spring Cloud Config는 여전히 레이블 이름으로 "master"를 찾습니다.동작을 따서기동변본경는려우항사속아상성다있수레니습변이경할조용름회이의 아래 을 사용하여 할 수 .application.yml또는application.properties:

spring.cloud.config.server.git.default-label=main

이것은 저에게 매우 효과적이었습니다.Spring Boot 2.3.6을 사용하고 있습니다.풀어주다

GitHub은 기본 분기 "main"을 생성했지만 Spring cloud Config는 "master branch"를 찾고 있었습니다."마스터" 지점을 만들었고 작동했습니다!

저는 똑같은 짜증나는 시나리오에 직면했습니다.

먼저 제가 이 시나리오를 어떻게 해결했는지 설명하고, 나중에 제가 이전에 했던 실수를 강조하겠습니다.내 맥락에서, 나는 사용하고 있습니다.application.properties

제 애플리케이션 개요는 다음과 같습니다.나는 중앙 집중화되고 각 마이크로 서비스에 각 구성 데이터를 제공하는 구성 서버를 가지고 있습니다.

예를 들어 마이크로 서비스 'limits-service'에는 일부 구성 데이터가 필요하며, 이 데이터는 중앙 구성 서버('spring-cloud-config-server')에서 가져옵니다.따라서 이를 위해 'limits-service'는 중앙 구성 서버를 쿼리합니다. 이 서버는 원격 Git 분기('spring-cloud-sample')에서 요청된 데이터를 가져옵니다.

                            ┌---------------------- <--> [currency-exchange-service]
    [git] <--> [spring-cloud-config-server] ------- <--> [limits-service] 
                            └---------------------- <--> [currency-conversion-service]

솔루션:

중앙 구성 서버를 통해 여러 마이크로 서비스에서 사용할 모든 구성 파일에 대해 새 Git 저장소(스프링 클라우드 샘플)를 생성했습니다.

application.properties중앙 구성 서버의 파일('spring-cloud-config-server'), 다음과 같은 속성을 제공했습니다.

spring.cloud.config.server.git.uri=https://github.com/{username}/{git-reponame.git}

처럼 보일 수도 있는.

spring.cloud.config.server.git.uri=https://github.com/alice123/spring-cloud-samples.git 이상입니다!

central-config-server를 시작할 때 다음과 같은 로그를 확인합니다.

2020-02-17 05:25:07.867  INFO 15000 --- [nio-8888-exec-9] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/D:/Users/{userName}/AppData/Local/Temp/config-repo-3453413414/limits-service.properties

게다가, 저는 '한계 서비스'를 통해 구성 데이터도 소비했고 그것은 매력적으로 작동했습니다!

저는 실패와 많은 비명과 고함을 유발하는 다음과 같은 것들을 시도했습니다. XD

같은 컨셉을 시도하는 사람이 하룻밤의 일을 덜 살릴 수 있도록 게시합니다 :p

처음에는 다음과 같이 central-config-server의 application.properties 파일에서 Git Reposities SSH URL을 사용했습니다.

spring.cloud.config.server.git.uri=git@github.com:alice123/spring-cloud-samples.git
spring.cloud.config.server.git.username=alice123
spring.cloud.config.server.git.password=alice123Pwd

다음 오류가 발생했습니다.

2020-02-17 05:22:45.091  WARN 15000 --- [nio-8888-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.
org.eclipse.jgit.api.errors.TransportException: git@github.com:aniketrb-github/spring-cloud-samples.git: Auth fail

나중에, 나는 네이티브/로컬 Git 디렉토리에서 구성 데이터를 읽으려고 시도했는데, 이 디렉토리는 내 Git 원격 지점(스프링-클라우드-샘플)을 가리키고 있었습니다.그런 다음 application.properties 파일에 다음을 제공했습니다.

spring.cloud.config.server.git.uri=file://D:\aniket-workspace\github-ws\microservices\udemy-microservices\git-localconfig-repo

다음 항목과 충돌:

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.properties'

나중에 충분히 검색한 후, 위의 속성을 아래로 변경하여 작동했습니다!!:

spring.cloud.config.server.git.uri=D:\\\\alice-workspace\\\\github-ws\\\\microservices\\\\git-localconfig-repo

'limits-service'가 'spring.cloud.config.server'에서 구성 데이터를 가져오는 동안 결국 실패하고 다음 오류가 발생했습니다.

404: Not Found - "org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: master"

제가 언급한 해결책은 위에서 언급한 모든 실패로 인해 저에게 효과가 있었습니다.제가 틀렸다면 정정해 주시고, 필요하다면 즉흥적으로 해주세요.이것이 중요한 시간을 절약하고 도움이 되기를 바랍니다.

참조: spring-cloud-config, https-or-ssh, git-ssh-windows, git-ssh-windows-문제 해결

이 문제는 서비스가 Git 저장소에 액세스할 수 없을 때 발생합니다.애플리케이션을 시작할 수 있기 때문에 테스트 서버가 Git에 도달할 수 있다고 생각합니다.Git 서버에 SSH 인증을 설정해야 합니다. 사이트에서 SSH 구성을 확인할 수 있습니다.

나의 경우에는 주어진 답변이 전혀 효과가 없었습니다.유일하게 작동한 것은 default-label을 master로 설정하는 것입니다.

spring.cloud.config.server.git.default-label=master

새 리포지토리를 만들 때 요즘 git는 마스터 대신 "main"을 기본 분기로 설정합니다.이 문제는 모두 이 문제에 관한 것입니다.

수동으로 "마스터" 분기를 만듭니다.그것은 이 모든 문제들을 해결할 것입니다.

기본 브랜치 'main'으로 인해 이 문제가 발생했습니다.새 분기를 만들 때마다 기본 분기는 더 이상 'master'가 아니라 'main'입니다. 하지만 봄 서버 구성은 마스터 분기를 찾습니다. 빠른 해결책은 'main' 분기에서 'master'라는 새 분기를 체크아웃하고 봄 구성 서버에서 시도하는 것입니다.그게 다야.

주 브랜치에서 주 브랜치로 새 브랜치를 만듭니다. 첫 번째 포인트에서 주 브랜치로 그리고 거기서

git checkout - b master git push -- set-patch origin master

구성 서버를 다시 시작하고 테스트합니다.


저는 당신이 잘 지내고 있기를 바랍니다.
STS 4를 사용하고 있으며 로컬 깃레포에서 봄 클라우드 구성을 위해 소스 링크 폴더(local gitrepo)를 추가했습니다.
저도 같은 문제에 직면했습니다.
저는 방금 백슬래시를 포워드슬래시로 바꿨습니다.
내가 이렇게 사용하고 있을 때.

spring.cloud.config.server.git.uri=file://C:\Users\coder\Desktop\spring material\in28microservies\git-localconfig-repo

오류가 발생했습니다.

2020-04-04 14:57:37.874 ERROR 6952 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot load environment] with root cause
java.lang.IllegalStateException: Cannot convert uri to file: file://C:UserscoderDesktopspring materialin28microserviesgit-localconfig-repo

그런 다음 구성 서버 속성 파일에서 모든 백슬래시를 포워드 슬래시로 교체했습니다.
그리고 그것은 나에게 효과가 있었습니다.

spring.cloud.config.server.git.uri=file://C:/Users/coder/Desktop/spring material/in28microservies/git-localconfig-repo
spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=file://<location>

아래 친구가 언급한 대로 사용해 보십시오.

https://stackoverflow.com/a/33179106/1908827

이것은 확실히 효과가 있을 것입니다!!! :)

특정 폴더에서 처음으로 repo를 초기화하는 경우 마스터를 표시하려면 다음 방법으로 변경사항을 커밋해야 합니다.

> git add -A .
> git commit -m "added prop..."

프로젝트를 다시 실행하고 동일한 URL을 누릅니다.

즐겁습니다 :)

이것은 저도 비슷한 문제를 겪었을 때 발견한 것입니다.

이슈/실수#1 >> 메모장을 사용하여 속성 파일을 만들었습니다(Windows OS에 있습니다).파일이 .txt 확장자로 생성되었습니다.따라서 클라우드 구성이 변경 사항을 선택하지 않았습니다.수정: 확장자를 .txt에서 .properties로 변경했습니다.

이슈/실수#2 >> .properties 파일명이 언급된 내용과 달랐습니다.파일 이름은 다음과 같습니다.

servicename.properties

  matching the servicename defined in the *application.properties* as below:

spring.application.name=<<사용자 이름>>

예를 들어,

 spring.application.name=limits-service

따라서 파일 이름을 지정해야 합니다.**limits-service.properties**하지만 제가 만든 이름은

enter code here

수정: 파일 이름을 다음으로 변경: limits-service.properties

이제 Spring-cloud-config에서 구성을 확인할 수 있으며 구성된 GIT 저장소에서 값을 선택합니다.

방문 시 '지연(2분 이상)되지만 올바른 응답'을 받으신 분들께:localhost:8888/limits-service/default한 가지 간단한 방법은 다음과 같습니다.

  1. limits-service.properties에서 구성 서버 포트를 8888로 유지하는 대신 8887로 변경합니다.spring.config.import=optional:configserver:http://localhost:8887Spring이 포트 8888을 방문하려고 할 때 시간 초과가 발생한 것으로 보입니다.
  2. spring-cloud-config-server의 application.properties에서 spring.cloud.config.server.git.uri를 Github에 저장된 REAL git로 직접 변경합니다.나는 당신들이 그것을 복사해서 붙여넣을 수 있도록 나만의 공용 깃을 사용하고 있습니다.spring.cloud.config.server.git.uri=https://github.com/SimonSongCA/git-localconfig-repo.git

지연 시간을 X분에서 초로 크게 단축하고 콘솔에 더 이상 예외가 없습니다.

아래의 해결책이 저에게 효과가 있었습니다.속성 파일에 아래 속성을 추가합니다.

spring.cloud.config.server.git.default-label=master

오른쪽 깃 위치를 가리키고 있는지도 확인합니다.

spring.cloud.config.server.git.uri=file:///C://Work//my_project//app-props//repo//test

위의 오류는 GitHub이 기본 분기를 "메인"으로 전환했기 때문에 이전 튜토리얼을 참조할 때 발생합니다. 그러면 응용 프로그램이 구성 서버 저장소의 마스터 분기에 액세스하려고 하지만 사용할 수 없으므로 위의 오류가 발생하고 브라우저를 통해 액세스하면 흰색 레이블 오류 페이지가 표시됩니다.

위의 코멘트에 이미 언급된 솔루션

언급URL : https://stackoverflow.com/questions/40024161/spring-config-server-no-such-label-master

반응형