2016-08-26 3 views
0

AWS에서 실행중인 스프링 웹 애플리케이션 (스프링 부트 아님)이 있습니다. 중앙 집중식 구성 서버를 만들려고합니다. 속성을 변경 한 후 스프링 클라우드 클라이언트를 새로 고치는 방법은 무엇입니까? 다음 클라이언트의 새로 고침 엔드 포인트, http://localhost:8080/refresh에 빈 HTTP의 POST를 전송하고,에 의해유레카, 리본 및 스프링 부트가없는 스프링 클라우드 구성 클라이언트

액추에이터 엔드 포인트 튜토리얼을 따라하면이 http://localhost:8080/message 엔드 포인트를 검토하여 일을 확인합니다.

하지만 내 aws Ec2 인스턴스는로드 밸런서 뒤에 있으므로 클라이언트 URL을 호출 할 수 없습니다. Netflix Eureka와 Ribbon을 많이 이해하지 못했지만 클라이언트 측에서 다른 수준의로드 밸런서를 추가하는 것처럼 보입니다. 나는이 접근법을 좋아하지 않는다. 단지 속성을 변경하기 위해 나는 기존 프로젝트를 불필요하게 복잡하게 만들고 싶지 않습니다. 다른 방법이 있습니까? 또는 유레카/리본 사용법을 오해하고 있습니까?

나는 spring-cloud-config-client-without-spring-boot을 보았습니다. spring-cloud-config-client-without-auto-configuration 아무도 대답이 없습니다. 첫 번째 스레드는 2015 년에 응답되었습니다. 업데이트가 있습니까?

+0

유레카와 리본은 설정 클라이언트와 아무 관련이 없습니다. 서버를 설정하는 HTTP API가 있지만 부팅되지 않은 클라이언트에서 구현해야하는 것은 여전히 ​​있습니다. – spencergibb

+0

@spencergibb Http Api에 대해 설명해 주시겠습니까? 또는 참조 링크를 제공합니까? 클라이언트가 속성을 어떻게 새로 고 칩니 까? – Chandru

답변

1

구성 서버에서 구성 등록 정보를 가져 오려면. http 요청을 할 수 있습니다. 예 : 문서에서

우리는 볼 수 있습니다 : 그래서

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml <- example 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

당신이 http://localhost:8080/applicationName-activeProfile.yml에 요청을 할 것입니다 경우 그 이름과 활성 프로파일을 사용하여 응용 프로그램에 대한 .yml 형식의 속성을받을 것입니다. 스프링 부트 설정 클라이언트는 자동으로이 값을 제공하지만 em을 수동으로 제공해야합니다.

작동하려면 유레카/리본이 필요하지 않습니다. 별도의 구성 요소입니다. 더 많은 정보 : http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_config

아마도 spring-cloud-config를 사용할 수도 있지만, 스프링 부트없이 추가 구성이 필요한지 잘 모르겠습니다. https://cloud.spring.io/spring-cloud-config/

+0

@spencergibb 설명에 감사드립니다. 스프링 부트가 활성화되면 자동으로 등록 정보를 새로 고칩니다. – Chandru

+0

무엇에 대한 적극적인 요청입니까? – spencergibb

+0

@spencergibb로드 밸런서 뒤에 3 개의 인스턴스가 있고로드 밸런서가 노출 된 URL 인 경우 클라이언트에서 refresh api를 호출하면 세 인스턴스 중 하나에서 트리거됩니다. 세 가지가 전부는 아닙니다. 모든 인스턴스를 새로 고칠 수 있도록하려면 어떻게해야합니까? – Anunay

관련 문제