spring cloud 2. x 버 전 Feign 서비스 발견 튜 토리 얼 (통합 Hystrix 퓨즈 메커니즘 포함)
5743 단어 spring
Spring cloud 2.1.8RELEASE,version=Greenwich.SR3
본 고 는 앞의 두 편의 문장 인 eureka - server 와 eureka - client 의 실현 을 바탕 으로 한다.레 퍼 런 스
Feign 프로젝트 만 들 기
1.1 sping boot 프로젝트 만 들 기: eureka - fegn
1.2 pom. xml 관련 의존 도 추가
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-openfeign
1.3 응용 프로그램 설정 정보 추가
spring:
application:
name: eureka-feign
server:
port: 8601
eureka:
instance:
hostname: localhost
lease-renewal-interval-in-seconds: 5
lease-expiration-duration-in-seconds: 10
client:
service-url:
defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/
1.4 시작 클래스 Eureka FeignApplication 추가 설명
package spring.cloud.demo.eurekafeign;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
@EnableDiscoveryClient
@EnableFeignClients
@SpringBootApplication
public class EurekaFeignApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaFeignApplication.class, args);
}
}
@ EnableDiscoveryClient: 여 기 는 EnableDiscoveryClient 주 해 를 사용 합 니 다. eureka - client 에서 설명 하 였 습 니 다. 여 기 는 설명 하지 않 습 니 다.
@ EnableFeignClient: Feign 클 라 이언 트 사용 하기
1.5 서비스 인터페이스 EurekaFeignService 만 들 기
package spring.cloud.demo.eurekafeign.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @auther: maomao
* @DateT: 2019-09-17
*/
@FeignClient(value = "eureka-client")
public interface EurekaFeignService {
@RequestMapping(value = "/info")
String syaHello();
}
@ FeignClient: Feign 클 라 이언 트 를 정의 하고 원 격 client 를 호출 합 니 다.eureka - client 는 client 의 spring. application. name 을 대표 하여 원 격 주소 예제 를 호출 합 니 다.http://eureka-client/info
1.6 Eureka FeignController 제어 클래스 만 들 기
package spring.cloud.demo.eurekafeign.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import spring.cloud.demo.eurekafeign.service.EurekaFeignService;
import javax.annotation.Resource;
/**
* @auther: maomao
* @DateT: 2019-09-17
*/
@RestController
@RequestMapping("/feign")
public class EurekaFeignController {
@Resource
private EurekaFeignService eurekaFeignService;
@RequestMapping("/sayHello")
public String sayHello() {
return "feign result: " + eurekaFeignService.syaHello();
}
}
1.7 eureka - fegn 서비스 시작
eureka - server 서비스 등록 센터 에서 eureka - fegn 이 등록 에 성 공 했 는 지 볼 수 있 습 니 다.
빨 간 상자 의 내용 은 eureka - fegn 이 정상적으로 시작 되 었 고 eureka - server 서비스 등록 센터 에 성공 적 으로 등록 되 었 습 니 다.
방문 하 다.http://localhost:8601/feign/sayHello, 다음 과 같이 표시:
몇 번 더 새로 고침 하면 브 라 우 저 에서 통 하지 않 는 결 과 를 볼 수 있 고 포트 는 변 합 니 다.
Feign 의 기본 부하 균형 정책 은 폴 링 방식 입 니 다.Feign 의 부하 균형 정책 을 수정 하려 면 eureka - ribbon 의 설정 을 참고 하 십시오.
이로써 간단 한 단기 Feign 서비스 소비자 공 사 를 마 쳤 다.
달걀
Feign 통합 Hystrix 퓨즈 메커니즘
pom. xml 의존 증가
org.springframework.cloud
spring-cloud-starter-netflix-hystrix
application. yml 설정 추가
feign:
hystrix:
enabled: true
EurekaFeignService 수정
@ FeignClient 주석 에 fallback 추가
package spring.cloud.demo.eurekafeign.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @auther: maomao
* @DateT: 2019-09-17
*/
@FeignClient(value = "eureka-client", fallback = EurekaFeignServiceFailure.class)
public interface EurekaFeignService {
@RequestMapping(value = "/info")
String syaHello();
}
Eureka FeignServiceFailure 클래스 증가:
package spring.cloud.demo.eurekafeign.service;
import org.springframework.stereotype.Service;
/**
* @auther: maomao
* @DateT: 2019-09-17
*/
@Service
public class EurekaFeignServiceFailure implements EurekaFeignService {
@Override
public String syaHello() {
return " , ";
}
}
eureka - fegn 서비스 시작
우선 eureka - client 가 시작 되 지 않 은 상태 에서 접근 합 니 다.http://localhost:8601/feign/sayHello모든 것 이 정상 이 아 닌 지 를 보고 그 중 하 나 를 멈 추고 eureka - client 를 여러 번 갱신 합 니 다.http://localhost:8601/feign/sayHello, 다음 과 같이 표시:
추 가 된 Hystrix 가 유효 하 다 는 뜻 입 니 다.
이로써 Feign 통합 Hystrix 퓨즈 메커니즘 이 모두 완성 됐다.
총결산
본 고 는 주로 feign 이 서비스 소비 로 서 의 간단 한 응용 과 Hystrix 의 통합 을 간단하게 실현 했다.
코드 주소
gitHub 주소
디 렉 터 리
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.