앞 게시글에서는 서버 재실행 시 랜덤포트로 인해서 포트가 변경되어졌다.
따라서 앞에서 정리했던 API Gateway service에 등록하여 일정한 포트로 진행해보겠습니다.
우선
apigateway-service에 application.yml 파일에 user-service 라우트를 추가하겠습니다.
server:
port: 8000
eureka:
instance:
hostname: localhost
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
spring:
application:
name: apigateway-service
cloud:
gateway:
default-filters:
- name: GlobalFilter
args:
baseMessage: Spring Cloud Gateway Global Filter
preLogger: true
postLogger: true
routes:
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/**
# - id: first-service
# uri: lb://MY-FIRST-SERVICE
# predicates:
# - Path=/first-service/**
# filters:
## - AddRequestHeader=first-request, first-request-header2
## - AddResponseHeader=first-response, first-response-header2
## - CustomFilter
# - id: second-service
# uri: lb://MY-SECOND-SERVICE
# predicates:
# - Path=/second-service/**
# filters:
## - AddRequestHeader=second-request, second-request-header2
## - AddResponseHeader=second-response, second-response-header2
# - name: CustomFilter
# - name: LoggingFilter
# args:
# baseMessage: Hi, there
# preLogger: true
# postLogger: true
user-service 프로젝트 > controller > UserController.java
status 메소드에 현재 랜덤 지정된 포트 확인용으로 수정
@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의 api 테스트
잘 동작하는 것을 확인할 수 있다.
이제 apigateway-service의 포트 8000으로 해당 api를 테스트해보자!
404로 응답되는 것을 알 수 있습니다.
이러한 현상은 Users Service의 URI 와 API Gateway의 URI가 다르기 때문입니다.
api gateway uri : /user-service/health_check
user service uri : /health_check
위 처럼 다르기 때문에 Not Found 404가 응답되었습니다.
따라서 UserController에 RequestMapping 혹은 각 Mapping에 /user-service를 추가하면 됩니다.
user-service > controller > UserController.java > status 의 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"));
}
다시 서버 실행 후 apigateway-service 포트로 user-service의 status를 호출 해보겠습니다.
이제 정상적으로 호출되는 것을 볼 수 있습니다.
SpringBoot MSA (11) - MicroService / Catalog 서비스 생성 (0) | 2023.10.17 |
---|---|
SpringBoot MSA (10) - MicroService / UserService 기타 기능 추가 (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService 비밀번호 암호화 (3) (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService DB API (2) (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService H2 연결 (1) (2) | 2023.10.16 |
댓글 영역