에지서버
라우팅 규칙 설정을 위해
curl -H "accept:application/json" localhost:8080/eureka/api/apps -s | \ jq -r.applications.application[].instance[].instanceId
보통은 구성파일 src/main/resources/application.yml
에서 라우팅 경로를 선언하는 방식이 편리하다.
라우팅경로는 다음과 같은 규칙에 따라 정의된다.
- 조건자 (predicate) : 수신되는 HTTP 요청 정보를 바탕으로 경로를 선택
- 필터 (filter) : 요청이나 응답을 수정
- 대상 URI (destination URI) : 요청을 보낼 대상
- ID : 라우트 경로 이름
spring.cloud.gateway.routes:
- id: product-composite
uri: lb://product-composite
predicates:
- Path=/product-composite/**
이렇게 되어있는 것을
spring.cloud.gateway.routes:
- id: product
uri: lb://product
predicates:
- Path=/product/**
product-composite를 전부 product로 변경
- id: product-composite : 경로 이름은 product-composite다
- uri: lb://product-composite : 조건자에 의해 경로가 선택되면 검색 서비스인 넷플릭스 유레카를 통해 product-composite라는 서비스로 요청이 라우팅 된다.
lb://는 스프링 클라우드 게이트웨이가 클라이언트 측 로드 밸런서를 사용해 검색 서비스에서 대상을 찾도록 지시
- predicates:
-Path=/product-composite/**
: 이 라우팅 규칙이 처리할 요청을 지정. '별별'은 0개 이상의 문자와 일치
책 - 스프링으로하는 마이크로서비스 구축(매그너스 라슨,에이콘)