티스토리 뷰

자 지금까지 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 

 

[MSA] Spring Cloud로 개발하는 MS 어플리케이션 (Gateway)-3-

이제 본격적으로 Gateway에 대해서 정리할거에요. 그럼 먼저 Gateway에 대해서 간단하게 설명드릴게요 1. API Gateway가 뭐지? 🧑 나 강사님 Gateway가 뭔가요??? 👨 강사님 쉽게 정리하면 단일점이에요.

ggparkitbank.tistory.com

 

 

#다시 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로 다시 맵핑해줄게요.

그 뒤에 다시 실행해볼까요?

나이따

헤헤 잘 실행되네요. 여기까지 잘따라오셨다면 따따따봉 드리겠습니다. 

감사합니다. 

 

-해당 포스팅은 아래의 강의를 참고해서 만들어졌습니다. 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해

www.inflearn.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함