반응형
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Users Microservice와 Spring Cloud Gateway 연동
Controller에서 port 출력
@GetMapping("/health_check")
public String status() {
return String.format("It's Working in User Service on PORT %s",
env.getProperty("local.server.port"));
}
apigateway-service 프로젝트 route 정보 입력
application.yml
routes:
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/**
두 개의 프로젝트를 실행한다.
유레카 대시보드 확인
health_check 메서드 동작 확인
게이트웨이를 통과하는 uri 주소 입력
application.yml에서 route 정보를 입력시켰음에도 불구하고 404 에러 페이지가 뜬다.
이유는 uri가 '/user-service/health_check'인데 user-service 프로젝트의 controller에서는 '/user-service/health_check'가 아닌 '/health_check'를 GetMapping하기 때문에 요청에 맞는 응답을 해주지 못한 것이다.
@RequestMapping("/")
public class UserController {
@GetMapping("/health_check")
public String status() {
return String.format("It's Working in User Service on PORT %s",
env.getProperty("local.server.port"));
}
}
위 user-service의 UserController 코드로 봤을 때는 'IP:포트번호/health_check'한 uri 요청에만 응답할 수 있다.
그래서 Controller의 GetMapping()을 수정해주면 된다.
@GetMapping("/user-service/health_check")
public String status() {
return String.format("It's Working in User Service on PORT %s",
env.getProperty("local.server.port"));
}
@GetMapping("/user-service/welcome")
public String welcome() {
//return env.getProperty("greeting.message");
return greeting.getMessage();
}
서버 재실행 후 크롬에서 확인
- 출처 : 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의
반응형