티스토리 뷰
[MSA] Spring Cloud로 개발하는 E-commerce 마이크로 서비스 어플리케이션(User Service + Gateway) - 5 -
박강균 IT 2022. 4. 18. 15:16자 지금까지 UserService를 열심히 만들었으니, 이제 Gateway에 등록하는 절차를 다시 밟아볼게요.
그런데... 너무 졸리네요... 오늘따라 너무 졸려서 포스팅을 대충한거 같아요...
하지만 여기서 마무리를 짓긴 아쉬우니까! 계속해서 작성해볼게요
자 일단은 Gateway에 연결하기전 Port번호를 0으로 해뒀기 때문에 Controller를 조금 수정해줍시다.
#UsersController
@GetMapping("/health_check")
public String status(){
return String.format("It's Working in User Service on PORT %s",
env.getProperty("local.server.port"));
}
기존에는 그냥 문자열만 리턴했지만 String.format을 활용해서 Port번호를 출력하도록 변경해줄게요.
이렇게 하는 이유는 Gateway를 사용하면서 로드밸런싱을 사용할텐데, 이때 포트번호가 불분명해지는 경우를 방지하기
위해서 간단하게 Port를 출력되도록 수정한 거에요! 자 그럼 이제 Gateway의 yml파일을 수정 해줄게요.
Gateway가 없으시다면... 굉장히 슬픈일이지만 아래의 링크를 참조해주시길 부탁드립니다...
https://ggparkitbank.tistory.com/119?category=1015014
#다시 API Gateway Service로
오랜만에 보는 것 같네요. 코드라는게 참 신기한게 분명 내가 만들고도 머였는지 기억이 안날때가 있어요 ㅋㅋ
자 여기서 저희가 하고자 하는 일은 UserService를 Gateway에 등록하는 일이에요! 정말 큰일이네요... 코드를 갈아엎어야하는 걸까요?
아니요! 단 몇줄만 수정하면 됩니다.
#application.yml
server:
port: 8000
eureka:
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: Glabal Filter의 BaseMessage 에요!!
preLogger: true
postLogger : true
routes:
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/**
기존에 작성했던 first-service와 second-service를 전부 지우고 user-service를 등록해줬습니다. routes정보만 user-service에 맞게 수정해줬어요! 저번 포스팅에서 설명했던 내용들은 슬쩍 넘어갈게요
이제 끝이에요! 더 할게 남아있지 않아요. 그럼 실행시켜볼까요?
#Test Case 01
음 일단 APIGATEWAY-SERVICE와 USER-SERVICE는 정상적으로 잘 실행되고 있네요 그럼 한번 접속해볼까요?
#USER-SERVICE Health Check
일단 Health Check를 해보면 포트번호가 잘 출력이 되네요. 정말 최고에요 !!
그럼 당연히 게이트웨이로 접속해도 무리없이 출력이 되겠죠?
#Gateway Health Check
왜 안되는걸까요..? 분명 잘 따라했는데??
사실 안되는게 정상입니다. Gateway는 말그대로 통로에요!
URL정보를 그 대로 가지고 간다는 거 기억나시나요?
저희가 localhost:8000/user-service/health_check로 접속 한다는 건
localshot:user-service포트/user-service/health_check와 동일해요
그렇기 때문에 해당 URL은 존재하지 않기 떄문에 404에러가 출력 되게 되는거에요.
그럼 다시 UserService 프로젝트로 넘어와서 Controller를 수정해줍시다.
#UserController
@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"));
}
기존에 /health_check 였던 부분을 /user-service/health_check로 다시 맵핑해줄게요.
그 뒤에 다시 실행해볼까요?
헤헤 잘 실행되네요. 여기까지 잘따라오셨다면 따따따봉 드리겠습니다.
감사합니다.
-해당 포스팅은 아래의 강의를 참고해서 만들어졌습니다.
'웹 프로그래밍 > MSA 학개론' 카테고리의 다른 글
- Total
- Today
- Yesterday
- github
- rabbitmq
- 운동
- git
- UserService
- MSA
- Kafka Connect
- Logstash 활용
- springcloud
- 루틴기록
- elasticSearch
- Logstash to ElasticSearch
- 오늘저녁 삼겹살
- docker
- config
- kafka
- LoadBalancer
- producer
- consumer
- Spring + ELK
- zipkin
- 빅-오
- MariaDB
- Feign
- prometheus
- Gateway
- JWT
- 운동일기
- 미래의나에게동기부여
- ACTUATOR
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |