본문 바로가기

MSA (MicroServiceArchitecture)/Eureka & Spring Cloud Gateway

MSA (Spring Gateway 필터적용_02)

# Spring Gateway에서 yml 파일을 사용하여 필터를 적용하는 방법에 대해서 알아보자.

1. 기존에 작성했던 JAVA 파일에서 @어노테이션 부분을 주석으로 막아준다.

- FirstServiceConroller와 SecondServieController에 아래의 코드를 추가한다.

    @GetMapping("/message")
    //메세지라는 메소드가 실행됨에 있어서 "first-request" 헤더값을 받아오고, 그 값이 header안에 저장이 된다.
    public String message(@RequestHeader("first-request") String header) {
        log.info(header);
        return "Hello World in First Service.";

- 그리고 아래와 같이 RequestMapping 정보도 수정한다.

기존에 / 경로로 설정되어 있던 정보를 아래와 같이 "/first-service" 라는 경로로 수정해 준다.

@RequestMapping("/first-service")

2. application.yml 파일을 수정한다.

server:
  port: 8000

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:8761/eureka
spring:
  application:
    name: apigateway-service
  cloud:
    gateway:
      routes:
        - id: first-service
          uri: http://localhost:8081/ #http://127.0.0.1:8081/first-service/welcome #이동될 주소
          predicates:
            - Path=/first-service/** #사용자가 입력한 조건값
          filters:
            - AddRequestHeader=first-request, first-request-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
            - AddResponseHeader=first-response, first-response-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
        - id: second-service
          uri: http://localhost:8082/ #http://127.0.0.1:8082/second-service/welcome #이동될 주소
          predicates:
            - Path=/second-service/** #사용자가 입력한 조건값
          filters:
            - AddRequestHeader=second-request, second-request-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
            - AddResponseHeader=second-response, second-response-header2 #앞에값이 키값이고 뒤에값이 벨류이다.

3. postman 프로그램을 사용하여 데이터 값을 확인한다.

- Budy부분을 확인해 봅시다. 정상적으로 문자가 출력된것을 확인 할 수 있다.

- 헤더부분을 확인하면 아래와 같은 정보가 출력된다.

- 다음시간에는 사용자 정의 필터에 대해서 알아보자.