SpringCloud 매우 간단한 프로젝트, 통합 척하기, Hystrix

척하기 기능 :이 등록 서비스에 따른 소비자 인 유레카ID 인터페이스 서비스와 통화를 찾을
Hystrix가 기능 : 퓨즈 경우 서비스 요구가 호출 B의 / 서비스를 도시 에이어서, 데이터를 얻기 위해 인터페이스 서비스 컨트롤러 성명에서이 @HystrixCommand 경우, B의 서비스 / 도시 인터페이스를 끊었, 그것은 사용자 정의 값을 반환

프로젝트 구조

[루트 @ node01 클라우드] # 트리 날씨 날씨 / 
날씨 날씨 / 
├── Application.java # 주요 프로그램은 입구 시작 
├── 컨트롤러 
와 같은 액세스 127.0.0.1:8080/cities으로 제어, 라우팅 │ ├── CityController.java 번호, 여기에 전화 cityClient 방법 
└── 서비스 
    └── 여기 cityClient 구현 방법 (인터페이스) CityClient.java #의 구체적인 방법을 구현

Application.java

패키지 com.waylau.spring.cloud.weather; 

오기 org.springframework.boot.SpringApplication;
 오기 org.springframework.boot.autoconfigure.SpringBootApplication;
 오기 org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker #의 퓨즈 혼입
 오기 ORG .springframework.cloud.client.discovery.EnableDiscoveryClient는 #은 유레카는 스스로 찾을 수 있도록
 가져 오기 org.springframework.cloud.netflix.feign.EnableFeignClients을 #는 척하기 소개 

@SpringBootApplication 
@EnableDiscoveryClient의 
@EnableFeignClients 번호는 프로그램이 FeignClient 소개 선언 
@EnableCircuitBreaker 번호가 선언 퓨즈 프로그램 소개 
공공  클래스 응용 프로그램 { 

        공공  정적 무효 메인 (문자열 []에 args) { 
                SpringApplication.run (애플리케이션. 클래스 , 인수); 
        } 
}

 

제어기 / CityController.java

패키지 com.waylau.spring.cloud.weather.controller을; 

수입 org.springframework.beans.factory.annotation.Autowired;
수입 org.springframework.web.bind.annotation.GetMapping;
수입 org.springframework.web.bind.annotation.RestController; 

수입 com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
수입 com.waylau.spring.cloud.weather.service.CityClient; #引用서비스 / CityClient.java
 
@RestController 
공공  클래스 CityController { 
        @Autowired 
        개인 CityClient cityClient; 

        (@GetMapping "/ 도시" )   #控制路由,比如访问127.0.0.1:8080/cities을
        @HystrixCommand (fallbackMethod = "defaultCities" ) 다른 서비스 설정 hystrix 퓨즈에 #을, 또 다른 서비스가 걸린 경우 fallbackMethod (콜백 메소드)를 선언, 호출 defaultCities 방법
         공공 문자열 listCity () {
                 // 척하기 클라이언트 검색 
                문자열 본체 = cityClient.listCity를 ();   cityClient 방법 CityClient.java, 도시 데이터에 대한 액세스에 # 통화 서비스
                 리턴 몸;                            # 반환 방문 127.0.0.1:8080/cities 도시가 데이터를 반환 할 수있을 것 
        } 

        공공 문자열 defaultCities을 () {                
                 반환 "시 데이터 서버 다운!" ; 
        } 
}

서비스 / CityClient.java (소비자)

다른 인터페이스 척하기에 데이터를 취득

패키지 com.waylau.spring.cloud.weather.service, 

가져 오기 org.springframework.cloud.netflix.feign.FeignClient,
 가져 오기 org.springframework.web.bind.annotation.GetMapping, 


@FeignClient ( "MSA-날씨 - 도시" ) # MSA-날씨 도시 ID의 유레카 등록에 MSA-날씨 도시 서비스는, 당신은이 마이크로 ID를 통해 MSA-날씨 도시 서비스에 액세스 할 수있는
 공용  인터페이스 CityClient { 

        @GetMapping ( "/ 도시" )    # 호출 MSA-날씨 마이크로에서 - 도시 서비스 / 도시 인터페이스 
        문자열 listCity ();        마이크로의 # 호출 MSA-날씨 도시 서비스 / 인터페이스 listCity () 메소드의 도시 
}

application.properties

spring.application.name : 마이크로 날씨 - 유레카 - 클라이언트 feign- hystrix 

eureka.client.serviceUrl.defaultZone : HTTP : // localhost를 : 8761 / 유레카 / 

feign.client.config.feignName.connectTimeout : 5000 
feign.client. config.feignName.readTimeout : 5000

 

테스트, 조건이 우리가 호출 할 수 있으며, 다른 서비스로 볼 수 있습니다

 

 

조건을 테스트하는 것은 대체, 그래서 우리가 호출되지 다른 서비스, 아니다

 

추천

출처www.cnblogs.com/chadiandianwenrou/p/11946419.html