Eureka Client LoadBalance

    • Eureka Client LoadBalance
    • Eureka Client의 정보는 Eureka Server에 등록
    • Eureka Client 상에서 다른 Eureka Client를 호출하고 싶다.
      • Eureka를 모를 때
        • 각 서비스 Application의 IP 및 porot 정보를 알아야 호출 가능
      • Eureka Server에 Eureka Client 정보가 있는데 사용해보자
    • Eureka Client Response
      • howling-client에 응답 method 추가
        • @GetMapping("/howling")
          public String howling() {
          return "howling~!!!";
          }
      • server restart 이후 브라우저 http://localhost:8081/howling 확인


    • Eureka Client Reuqest
      • 다른 libqa-client 에서 howling-client의 howling 요청
      • libqa-client에서 howling-client라는 application-name을 식별하기 위해서 설정 추가
      • Config.java 파일 추가 및 @Configuration, @LoadBalanced 어노테이션 추가
        • @Configuration
          public class Config {
          @Bean
          @LoadBalanced
          public RestTemplate restTemplate() {
          return new RestTemplate();
          }
          }
      • libqa-client에서 RestTemplate url 호출시 Eureka Server에 등록된 application-name 으로 호출 가능
      • howling-client 호출
        • @GetMapping("/callHowling")
          public String test() {
          String url = "http://howling-client/howling";

          ResponseEntity<String> stockResponse =
          restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<String>() {});

          return stockResponse.getBody();
          }


      • server restart 이후 http://localhost:8080/callHowling request 확인
        • libqa-client application 코드에서 ip, port 정보가 아닌 howling-client host 명으로 호출 가능


      • howling-client 다중 가동
        • howling-client 를 복사하여 port 정보 변경하여 가동


      • howling-client 2대의 서버의 응답 구분을 위해 response data 수정
        • // port 8081 server 응답
        • @GetMapping("/howling")
          public String howling() {
          return "howling-8081~!!!";
          }
        • // port 8082 server 응답
        • @GetMapping("/howling")
          public String howling() {
          return "howling-8082~!!!";
          }