2017-01-02 1 views
0

내 시나리오는 다음과 같습니다. 중앙 구성 서버에서 구성 변경 사항에 대해 마이크로 서비스에 통보합니다. 부분 업데이트 일 수도 있고 전체 일 수도 있습니다. 관련 콩에 @RefreshScope 표시를 사용합니다. 문제는 표시된 콩을 업데이트하는 방법입니다. 다시로드하는 것입니다. 명확히하기 : Spring Cloud에서 RefreshScope 만 사용합니다.RefreshScope로 표시된 빈 업데이트

아이디어가 있으십니까?

답변

0
  1. 프로젝트에 종속성 org.springframework.boot:spring-boot-starter-actuator을 추가하십시오.
  2. 전화로 구성 새로 고침 refresh 엔드 포인트.

예를 들어 아래와 같이 관리 끝점을 구성합니다. curl -X POST http://localhost:8001/manage/refresh은 새로 고침 변경된 구성을 트리거합니다. 당신이 변화에 의해 영향을받는 다른 구성 요소가있는 경우

management: context-path: /manage port: 8001 security.enabled: false

+0

감사합니다. 그러나 그것은 내 문제를 해결하지 못합니다. 내 설정이 "리포지토리"에있는 경우 새로 고침됩니다. 그러나 내 응용 프로그램이 변경된 매개 변수를 가져오고 지금부터 모든 관련 위치에서 업데이트해야하므로 내 경우가 다릅니다. 내가 처음으로 env를 업데이트해야합니까? 새로 고침을 요청한 후? – Oleg

0

, 그것은 저장소에 당신의 구성을 유지하는 것이 좋다 그리고 당신은 모든 영향을받는 구성 요소가되는 상쾌한 환경을위한 발행 - 구독 모델을 추가 할 수 있습니다 구성 변경의 결과로 저장소에서 게시 한 이벤트에 등록하십시오. POST 요청에 의해 앱

  1. 히트 새로 고침 엔드 포인트 :

    그리고 상쾌한 문맥

    우리는 두 가지 옵션이 있습니다.
  2. Autowaring하여 RefreshEndpoint 빈을 가져온 다음 refreshEndpoint.refresh()를 적용하십시오. 런타임시 컨텍스트가 새로 고쳐집니다.

두 가지 해결책 모두 @RefreshScope에 의해 관심있는 빈을 표시합니다.

관련 문제