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~!!!";
}
- 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();
}
}
@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~!!!";
}
- server restart 이후 http://localhost:8080/callHowling request 확인
- howling-client 2대에 LoadBalanced 되어서 호출 확인