spring cloud 2. x 버 전 Feign 서비스 발견 튜 토리 얼 (통합 Hystrix 퓨즈 메커니즘 포함)

5743 단어 spring
머리말
    Spring cloud   2.1.8RELEASE,version=Greenwich.SR3

본 고 는 앞의 두 편의 문장 인 eureka - server 와 eureka - client 의 실현 을 바탕 으로 한다.레 퍼 런 스
  • 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 주소
    디 렉 터 리
  • spring cloud 2. x 버 전 Eureka 서버 서비스 등록 센터 튜 토리 얼
  • spring cloud 2. x 버 전 Eureka 클 라 이언 트 서비스 제공 자 튜 토리 얼
  • spring cloud 2. x 버 전 Ribbon 서비스 발견 튜 토리 얼 (통합 Hystrix 퓨즈 메커니즘 포함)
  • [spring cloud 2. x 버 전 Feign 서비스 발견 튜 토리 얼 (통합 Hystrix 퓨즈 메커니즘 포함)] ()
  • spring cloud 2. x 버 전 Zuul 경로 게 이 트 웨 이 튜 토리 얼
  • spring cloud 2. x 버 전 config 분포 식 설정 센터 튜 토리 얼
  • spring cloud 2. x 버 전 Hystrix Dashboard 차단기 튜 토리 얼
  • 전재 출처, 연락처:[email protected]

    좋은 웹페이지 즐겨찾기