Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_6

2023. 2. 20. 22:50·공부/Spring
반응형

 

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Gateway-Logging Filter

Global Filter와 비슷한 Logginfg Filter를 작성해보자.

그럼 이 프로젝트에 적용된 필터는 3개이다. Custom Filter, Global Filter, Logging Filter.

이 필터들의 순서는 다음과 같다.

  • Global Filter PRE
  • Custom Filter PRE
  • Logging Filter PRE
  • Logging Filter POST
  • Custom Filter POST
  • Global Filter POST

 

LoggingFilter.java 생성

@Override
public GatewayFilter apply(Config config) {
    GatewayFilter filter = new OrderedGatewayFilter(((exchange, chain) -> {
        ServerHttpRequest request = exchange.getRequest();
        ServerHttpResponse response = exchange.getResponse();

        log.info("Logging Filter baseMessage : {}", config.getBaseMessage());

        if(config.isPreLogger()) {
            log.info("Logging PRE Filter : request id -> {}", request.getId());
        }

        // Custom Post Filter
        return chain.filter(exchange).then(Mono.fromRunnable(() -> {
            if(config.isPostLogger()) {
                log.info("Logging POST Filter : response code -> {}", response.getStatusCode());
            }
        }));
    }), Ordered.HIGHEST_PRECEDENCE);

    return filter;
}

 

 

application.java 설정

        - id: second-service
          uri: http://localhost:8082/
          predicates:
            - Path=/second-service/**
          filters:
#            - AddRequestHeader=second-request, second-request-header2
#            - AddResponseHeader=second-response, second-response-header2
            - name: CustomFilter
            - name: LoggingFilter
              args:
                baseMessage: Hi, there.
                preLogger: true
                postLogger: true

filter를 여러개 사용하려면 name이란 속성을 붙여줘야 한다.

서버 재실행 후 크롬에서 확인 및 콘솔 확인

 

 

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

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Spring' 카테고리의 다른 글
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_E-commerce 애플리케이션
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_7
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_5
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_4
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    토비의스프링부트
    기출문제
    oracle
    QueryDSL
    RESTful
    react
    JPA
    코딩테스트
    프론트엔드
    전자정부프레임워크
    springboot
    MSA
    egov
    토이프로젝트
    SQL
    자바스크립트
    스프링부트
    알고리즘
    인프런
    SpringBoot를 이용한 RESTful Web Service 개발
    프로그래머스
    IT
    백준
    방통대
    Java
    넥사크로
    운영체제
    Spring
    에러해결
    개발자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_6
상단으로

티스토리툴바