Spring Cloud Eureka Ribbon 서비스 등록 발견 및 호출

개술
Spring Cloud 에서 Eureka 와 Ribbon 의 기본 적 인 용법 을 간단 한 예 로 보 여 줍 니 다.
버 전과 환경
  • IDEA
  • Spring Boot 1.5.・0
  • JDK 1.8
  • Maven 3
  • eureka 서버 구축
    Spring Cloud 에 서 는 eureka 를 사용 하여 마이크로 서 비 스 를 관리 할 수 있 고 마이크로 서 비 스 는 eureka 에 등록 할 수 있 습 니 다.
    우선 IDEA 의 Spring Initialzr 으로 eureka server 등록 센터 를 만 들 수 있 습 니 다.




    application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
    
    spring.application.name=eureka-server 
    eureka.instance.hostname=localhost 
    eureka.client.register-with-eureka=false 
    eureka.client.fetch-registry=false 
    server.port=8881
    Spring Boot 에서 생 성 된 시작 클래스 ServerApplication@EnableEurekaServer 주 해 를 추가 합 니 다.
    
    package com.springcloud.eureka;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @EnableEurekaServer
    @SpringBootApplication
    public class ServerApplication {
    
      public static void main(String[] args) {
        SpringApplication.run(ServerApplication.class, args);
      }
    }
    브 라 우 저 에 입력http://localhost:8881/
    다음 화면 을 볼 수 있 습 니 다:

    아직 서비스 등록 이 되 지 않 은 것 을 볼 수 있 습 니 다.이로써 간단 한 마이크로 서비스 등록 센터 가 구축 되 었 다.
    마이크로 서비스 userservice 작성
    다음은 rest 로 마이크로 서비스 인 터 페 이 스 를 구축 하고 등록 센터 에 등록 합 니 다.여전히 Spring Initialzr 을 사용 하여 새로운 공 사 를 구축한다.사용 방식 은 위의 것 과 같다.


    이번 에는 Eureka Discovery 구성 요 소 를 선택 하 십시오.Eureka Server 이 아니 라
    application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
    
    spring.application.name=user 
    server.port=8882 
    eureka.client.service-url.defaultZone=http://localhost:8881/eureka/
    Spring Boot 이 우리 에 게 생 성 된 UserApplication 류 에서 @EnableDiscoveryClient 주 해 를 사용 합 니 다.
    
    package com.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    @EnableDiscoveryClient
    @SpringBootApplication
    public class UserApplication {
    
      public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
      }
    }
    rest full 의 마이크로 서비스 인 터 페 이 스 를 만 듭 니 다.
    
    package com.springcloud;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class UserController {
    
      @GetMapping("/getUser")
      public String getUser() {
        return "I am user list.";
      }
    }
    UserApplication 실행 후 다시 방문http://localhost:8881/
    user 라 는 서비스 가 등록 되 어 있 는 것 을 발견 할 수 있 습 니 다.

    마이크로 서비스 order 작성
    그 다음 에 저 희 는 주문 한 마이크로 서 비 스 를 구축 하고 user 라 는 마이크로 서비스의 인 터 페 이 스 를 방문 합 니 다.
    여전히 Spring Initialzr 을 사용 하여 새로운 공 사 를 구축한다.user 라 는 마이크로 서 비 스 는 여러 대의 기계 에 배치 할 수 있다.클 라 이언 트 가 이 서 비 스 를 방문 할 때 user 서 비 스 를 배치 한 모든 기계 로 이동 할 수 있 도록 요청 합 니 다.따라서 클 라 이언 트 는 user 라 는 서 비 스 를 알고리즘 으로 예약 해 야 합 니 다.Spring Cloud 에 서 는 Ribbon 구성 요 소 를 사용 하여 클 라 이언 트 경로 로 사용 할 수 있 습 니 다.Ribbon 내부 에 서 는 서비스 등록 센터 에 가서 서비스 목록 을 가 져 와 해당 하 는 서 비 스 를 호출 할 수 있 습 니 다.

    이번 에는 Eureka Discovery 구성 요 소 를 선택 하 는 것 외 에Ribbon 을 뽑 아야 합 니 다.
    application.properties 파일 을 수정 하고 다음 내용 을 추가 합 니 다.
    
    spring.application.name=order 
    server.port=8883 
    eureka.client.service-url.defaultZone=http://localhost:8881/eureka/
    Spring Boot 이 우리 에 게 생 성 된 OrderApplication 류 에 다음 과 같은 설정 을 추가 합 니 다.
    
    package com.springboot;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    @EnableDiscoveryClient
    @SpringBootApplication
    public class OrderApplication {
    
      @Bean
      @LoadBalanced
      RestTemplate restTemplate() {
        return new RestTemplate();
      }
    
      public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
      }
    }
    리본 을 사 용 했 기 때문에 @LoadBalanced 주 해 를 사용 해 야 합 니 다.OrderController 을 편찬 하 다.
    
    package com.springboot;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    @RestController
    public class OrderController {
      @Autowired
      private RestTemplate restTemplate;
    
      @GetMapping("/getOrderUser")
      public String getOrderUser() {
        return restTemplate.getForEntity("http://user/getUser",String.class).getBody();
      }
    }
    OrderApplication 실행 후 접근http://localhost:8881/
    order 라 는 서비스 도 등록 센터 에 등 록 된 것 을 발견 할 수 있 습 니 다.

    다음은 OrderController 중의 getOrderUser 방법 을 방문 하여 UserControllergetUser 방법 을 촉발 합 니 다.
    브 라 우 저 에 입력:http://localhost:8883/getOrderUser
    되 돌아 오 는 것 을 볼 수 있 습 니 다:I am user list.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기