이 문서에서는 봄 클라우드 열입니다 제목 : VII 배울 기사를 처음 여섯 문서 내용을 기사의 더 나은 이해에 기여 :
척하기 무엇 첫째,
척하기 넷플릭스가 개발 REST 클라이언트가 선언적 호출이다 리본로드 밸런싱을 Hystrⅸ 서비스 퓨즈 공정에 사용되는 마이크로 아주 기본 구성 요소에있는 우리의 봄 클라우드 서비스 개발, 우리는 또한 일반적으로 동시에 발생하는 것을 발견 및 구성은 봄 넷플릭스 척하기는 리본과 Hystrix 두 가지 구성 요소를 통합 클라우드 기반 그래서 봄 부팅처럼 각, 그래서 우리의 개발 작업이 쉽게 동일한 코드를 많이 개발도 매우 유사하다 봄 + SpringMVC 봄, 클라우드 척하기는 리본로드 밸런싱에 Hystrⅸ 서비스 퓨즈가 간소화되고, 또한, 그 기준에 캡슐화 된 간소화 된뿐만 아니라 선언적 웹 서비스를 제공하면서 구성이 크게 개발 작업을 단순화에 클라이언트 정의 방법. 유사한 사용 두보 사용.
둘째, 소비자들은 척하기를 사용하여 실현
라는 고객 서비스 만들기 1. (springcloud 서비스 - 체하다)
2, 추가 종속성
< 의존성 > < 의 groupId > org.springframework.cloud </ 의 groupId > < artifactId를 > 스프링 클라우드 스타터 넷플릭스 유레카 클라이언트 </ artifactId를 > </ 의존성 > < 의존성 > < 의 groupId > org.springframework.cloud </ 의 groupId > < artifactId를 > 스프링 클라우드 스타터 openfeign </ artifactId를 > </ 의존성 >
3, 시작 클래스에 주석을 추가
@EnableFeignClients
4, 문 서비스
의 HelloService 서비스 이름 다음 바인딩 서비스를 지정하는 @FeignClient 주석을 통해 정의 된 인터페이스 다음 다음과 같이 서비스 제공자의 인터페이스를 결합하기 위해 스프링 MVC에서 제공하는 노트 :
//이 원격의 주석 이름 결합 꾀병 클라이언트를 이용해, 이름은 대문자와 소문자 수 @FeignClient를 (값 = "springcloud 서비스 제공자" ) 공중 인터페이스 의 HelloService { //는 원격 메소드를 선언 서비스 제공 방법을 제공 RequestMapping @을 ( "/ 제공 /여보세요" ) 공공 문자열 안녕하세요 (); }
5, 컨트롤러를 사용하여 서비스를 호출하는 코드는 다음입니다
@Autowired 개인 의 HelloService의 HelloService; @ RequestMapping ( "/ 헬로" ) 공공 문자열 안녕하세요 () { // 원격 서비스에 대한 선언적 인터페이스 메소드 구현을 호출 전화 수익을 helloService.hello (); }
다음 6 application.yml 구성된
봄: 신청: 이름 : springcloud -service- 체하다 섬기는 사람: 포트 : 9091 유레카: 고객: 서비스 - URL : defaultzone : HTTP : // localhost를 : 8700 / 유레카 # 클라이언트 갱신 시간 서비스 정보 서비스 유레카에서 30 초마다 레지스트리 -fetch 간격 - 초 : 30 # 나는 서비스 유레카에 등록해야합니다 등록 가진 - - 유레카을 : 사실 서비스를 검색 할 수 # 필요 가져 -registry : 사실 # 하트 비트 감지 및 갱신 시간 예: # 나는 내 잘못을 대신하여, 당신에게 마음을주지 않은 경우 10 초, 서버에게, 나는, 기본 90 년대를 걸러합니다 제외 된 이상, 초, 대기에 마지막 하트 비트를받은 후 시간 제한 #Eureka 서버 (클라이언트는 자신이 규칙에 따라 대기에 서버를 알려줍니다) 임대 -expiration-기간을-에-초 : 10 # 2 초는 아직 살아, 기본 30 대를 스스로 증명, 하트 비트 서버에 모든 시간을 보낼 수 클라이언트가 초 서버 하트 비트 간격에 보내는 #Eureka 시간 (클라이언트는이 규칙을 따르는 것입니다 서버를 알려줍니다) 임대 -renewal 간격을-에-초 : 2
7, 테스트를 시작 주소 HTTP 방문 : // localhost를 : 9091 / 체하다 / 안녕을
셋째, 사용 척하기 지원 기능
로드 밸런싱 :
봄 클라우드는 직접로드 밸런싱하는 @FeignClient 주석의 정의를 달성 할 수있는 척하기를 사용하여,로드 밸런싱이 사용 Ribbo 개체가, RestTemplate은 이미 봄 클라우드 구성을로드 밸런싱을했다 할 수있는 RestTemplate에 직접 주입 달성하기 위해 리본을 제공합니다 인터페이스는 다음 또한 균형 잡힌 구성을 담당하는 방식에 원격 REST 서비스를 매핑하는 주석을 @RequestMappin 사용합니다.
서비스 융합 :
1 파일 hystrix 기능 application.yml를 열고
# hystrix 퓨즈 메커니즘을 사용 가장하다 : hystrix : 활성화 : 사실
2 콜백 지정된 퓨즈 로직
@FeignClient (값 = "springcloud 서비스 제공자"대체 = MyFallback. 등급 )
@Component 공공 클래스 MyFallback의 구현에 의 HelloService { @보수 공공 문자열 안녕하세요 () { 반환 "원격 서비스는 ..... 로컬 논리가 일시적으로 대신 고용 사용할 수 없습니다" ; } }
3, 테스트, 수 있도록 서비스 제공 업체들은 라인에 시간 초과
당신이 공급자에 의해 throw 예외를 포착해야하는 경우 사용할 수 있습니다 :
@FeignClient (값 = "springcloud 서비스 제공자"fallbackFactory = MyFallbackFactory. 등급 )
@Component 공공의 클래스 MyFallbackFactory 구현 FallbackFactory <의 HelloService> { @보수 공공 의 HelloService 생성 (Throwable를 throw 가능 객체) { 반환 새로운 () {의 HelloService를 @보수 공공 문자열 안녕하세요 () { 반환 에 Throwable.getMessage (); } }; } }
자세한 참조 사례 출처 : https://gitee.com/coding-farmer/spirngcloud-learn