티스토리 뷰

안녕하세요 박강균 IT 입니다~!!

다들 즐거운 코딩생활을 보내고 계신가요? 

다름이 아니라 오늘은 잠시 쉬어가는 의미에서 

간단한 잡지식을 공유하려고 이렇게 왔어요!

다름이 아니라 저희가 기존에 사용했던 Gateway의 Path옵션! 

 

조금 수정 해야할 필요가 있다는 점! 알고계셨나요?

 

 

너무 걱정은 No No No! 

일단 저 박강균 IT가 하나하나 말해드릴테니까 걱정하지마세요!

저희가 기존에 작성한 routes를 볼까요?

# Gateway Service application.yml

         routes:
            - id: user-service
              uri: lb://USER-SERVICE
              predicates:
                 - Path=/user-service/**
            - id: catalog-service
              uri: lb://CATALOG-SERVICE
              predicates:
                  - Path=/catalog-service/**
            - id: order-service
              uri: lb://ORDER-SERVICE
              predicates:
                 - Path=/order-service/**

현재 작성되어있는 routes에요 그런데 호출방식이 기억나시나요?

만약 저희가 localhost:8000/user-service/users 를 요청하게 되면, 다음과 같이 호출이 될거에요! 

localhost:해당포트/user-service/users 로 연결이 될거에요! 근데 너무 비효율적으로 보이지 않나요?

그냥 localhost:해당포트/users로 요청을 하게 하면 안되는 걸까요..?

 

다.행.히! 방법이 있답니다.

 

# Gateway Service application.yml

            - id: user-service
              uri: lb://USER-SERVICE
              predicates:
                 - Path=/user-service/users
                 - Method:POST
              filters:
                 - RemoveRequestHeader=Cookie
                 - RewritePath=/user-service/(?<segment>.*), /$\{segment}

filters 밑에 RewritePath가 추가 된 부분을 보시면 

- RewritePath = /user-service/(?<segment>.*) , /$\{segment}

 /user-service/(?<segment>.*) 이 부분은 해당하는 부분을 찾는다는 의미라고 생각하시면 될 것 같아요 

/$\{segment} 그리고 해당하는 부분을 다음과 같이 변경을 할거란 의미에요. 

Replace함수와 매우 유사하죠? 그럼 해당 필터를 넣어주면 어떻게 될까요? 

만약 클라이언트가 http://localhost:8000/user-service/users 라는 요청을 하게되면

http://localhost:[randomPort]/users라는 요청으로 바뀌어서 요청하게 됩니다! 더 이상 RequestMapping을 통한 번거로운 작업을 줄이고 요청의 길이자체도 줄일 수 있어요! 

 

어떤가요!! 대박아닌가요? 

도움이 돼셨다면 댓글과 구독! 꼭! 잊지말고 부탁드려요! 

감사합니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함