Spring Cloud Gateway 가 서비스 기반 으로 발 견 된 기본 경로 규칙 을 자세히 설명 합 니 다.

1.Spring Gateway 개요
1.1 스프링 클 라 우 드 게 이 트 웨 이Spring Cloud Gateway스프링 이 공식 적 으로 Spring 5.0,Spring Boot 2.0 과 Project Reactor 등 기술 을 바탕 으로 개발 한 게 이 트 웨 이 로 스프링 클 라 우 드 게 이 트 웨 이 는 마이크로 서비스 구조 에 간단 하고 효과 적 인 통 일 된 API 경로 관리 방식 을 제공 하 는 데 목적 을 둔다.Spring Cloud Gateway 는 Spring Cloud 생태계 의 게 이 트 웨 이 로 서 넷 플 릭 스 ZUUL 을 대체 하 는 것 이 목표 이다.이 는 통 일 된 경로 방식 을 제공 할 뿐만 아니 라 Filter 체인 방식 을 바탕 으로 게 이 트 웨 이 기본 기능 을 제공 했다.예 를 들 어 안전,모니터링/매 립 점,그리고 흐름 제한 등 이다.

1.2 Spring Cloud Gateway 의 기능
Spring Cloud Gateway 의 특징:
  • Spring Framework 5,Project Reactor 와 Spring Boot 2.0
  • 기반
  • 동적 경로
  • Predicates 와 Filters 는 특정 경로
  • 에 작용 한다.
  • 통합 Hystrix 차단기
  • 통합 스프링 클 라 우 드 DiscoveryClient
  • 작성 하기 쉬 운 Predicates 와 Filters
  • 흐름 제한
  • 경로 재 작성
  • 2.Spring Cloud Gateway 의 공정 절차

    클 라 이언 트 가 Spring Cloud Gateway 에 요청 합 니 다.그리고 Gateway Handler Mapping 에서 요청 과 일치 하 는 경 로 를 찾 아 Gateway Web Handler 로 보 냅 니 다.Handler 는 지 정 된 필터 체인 을 통 해 실제 서비스 실행 업무 논리 에 요청 을 보 낸 다음 되 돌려 줍 니 다.
    필터 간 에 점선 으로 나 누 는 것 은 필터 가 프 록 시 요청 을 보 내기 전에("pre")또는 그 다음("post")업무 논 리 를 수행 할 수 있 기 때 문 입 니 다.
    2.1 Pre 와 POST 두 가지 유형의 필터
    3.서비스 에서 발 견 된 기본 경로 규칙
    3.1 zuul 과 gateway 의 기본 경로 규칙
    3.1.1 zuul 의 기본 경로 규칙
    기본 적 인 상황 에서 Zuul 은 Eureka Server 에 등 록 된 모든 마이크로 서 비 스 를 대리 하고 Zuul 의 경로 규칙 은 다음 과 같다.
    http://ZUUL_HOST:ZUUL_PORT/마이크로 서비스 가 Eureka 에 있 는 serviceId/**는 serviceId 에 대응 하 는 마이크로 서비스 로 전 송 됩 니 다.
    http://localhost:8040/sc-zuul-first-provider/sc/order/2

    3.1.2 gateway 의 기본 경로 규칙
    규칙:http://Gateway_HOST:Gateway_PORT/대문자 serviceId/**
    그 중에서 마이크로 서비스 응용 이름 은 기본 대문자 로 접근 합 니 다.
    인 스 턴 스 코드:
    모듈
    설명 하 다.
    포트
    eureka-service
    유레카 서버 등록 센터
    5000
    gateway-service
    Spring Cloud Gateway Sever
    5001
    order-service
    서비스 공급 자
    5100
    user-service
    서비스 소비자
    5200
    위 에 있 는 네 개의 서 비 스 를 각각 새로 만 듭 니 다.자세 한 내용 은spring cloud Finchley 환경 구축
    그 중에서 gateway-service 서비스의 application.yml 설정 파일 은 다음 과 같 습 니 다.
    
    spring:
     application:
     name: gateway-service
     cloud:  # spring cloud gateway       
     gateway:
      discovery:  #             ,   serviceId(       )           。   false,  true               serviceId        。
      locator:  #      :http://Gateway_HOST:Gateway_PORT/   serviceId/**,              。
       enabled: true
      routes:
      - id: 163      #         
      uri: http://www.163.com/
      predicates:
       - Path=/163/**
    #  - id: ORDER-SERVICE   #         order-service
    #  uri: lb://ORDER-SERVICE
    #  predicates:
    #   - Path=/ORDER-SERVICE/**
    #  - id: USER-SERVICE   #         user-service
    #  uri: lb://USER-SERVICE
    #  predicates:
    #   - Pach=/USER-SERVICE/**
    
    server:
     port: 5001
    
    
    logging:
     level:
     org.springframework.cloud.gateway: trace
     org.springframework.http.server.reactive: debug
     org.springframework.web.reactive: debug
     reactor.ipc.netty: debug
    
    
    eureka:
     client:
     service-url:
      defaultZone: http://localhost:5000/eureka/
    
    feign:
     hystrix:
     enabled: true
    
    
    설정 항목 설명:
    spring.cloud.gateway.discovery.locator.enabled:서비스 발견 구성 요소 와 결합 할 지 여부 입 니 다.serviceId 를 통 해 구체 적 인 서비스 인 스 턴 스 로 전송 합 니 다.기본 값 은 false 입 니 다.true 로 설정 하면 서비스 센터 를 통 해 자동 으로 serviceId 에 따라 길 을 만 드 는 기능 을 엽 니 다.
    eureka.client.service-url.defaultZone: http://localhost:5000/eureka/,등록 센터 의 주 소 를 지정 합 니 다.Spring Cloud Gateway 는 등록 센터 에서 등 록 된 서비스 목록 을 가 져 옵 니 다.
    logging.level.org.springframework.cloud.gateway:debug,spring-Cloud-gateway 를 여 는 로그 단 계 는 debug 로 debug 디 버 깅 에 편리 합 니 다.
    3.3 시동 테스트
    3.3.1 잘못된 경로 규칙 접근
    Spring Cloud Gateway 에 대응 하 는 server 를 방문 하 십시오.http://localhost:5000/order-service/order/getOrderPort 에 오류 가 발생 할 수 있 습 니 다.다음 과 같 습 니 다.

    올 바른 Spring Cloud Gateway 의 기본 경로 규칙:http://Gateway_HOST:Gateway_PORT/대문자 serviceId/**
    3.3.2 Gateway 정확 한 경로 규칙 테스트

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기