공부/Spring

Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_1

데부한 2023. 2. 27. 23:17
반응형

 

 

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) 강의

 

반응형