SpringCloud Gatewayサービスゲートウェイ、アサーション

SpringCloud Gatewayは非ブロッキングモードを使用し、Netflix Zuulよりもパフォーマンスが高く、長い接続をサポートします。そのコアコンポーネントはアサーションとフィルターです。

ゲートウェイモジュールは、サービスゲートウェイ機能を実現するために、前の領事メインプロジェクトに追加されました。

SpringCloud Gatewayルーティング機能は、アサーションを使用して要求とルートを照合します。照合された要求は、処理のために対応するゲートウェイWebプロセッサーに送信され、プロセッサーは処理中に一連のフィルターを通過します。

1.Mavenの依存関係

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

2.構成ファイル

server:
  port: 8801
spring:
  application:
    name: gateway
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: gateway
    gateway:
      discovery:
        locator:
          enabled: false
          lower-case-service-id: true
      routes:
        - id: logservice
          uri: lb://logservice
          predicates:
          - Path=/log/**
          filters:
          - StripPrefix=1
        - id: orderservice
          uri: lb://orderservice
          predicates:
          - Path=/order/**
          filters:
          - StripPrefix=1

# 配置日志
logging:
  level:
    org.springframework.cloud.gateway: debug

ルートノードの下に複数のルートを設定でき、各ルートには対応するサービスに一致する一意のIDがあります。

述語ノードの下にアサーションを構成します。ゲートウェイにはさまざまな組み込みアサーションがあります。一般的に使用されるのはパスおよびパスルーティングアサーションです。上記のuriのlbは、負荷分散を使用することを意味します。または、特定のURLにすることもできます。

メソッドメソッドルーティングアサーションでは、指定されたリクエストメソッドタイプのみが渡されます。その他には、ヘッダー、Cookie、ホスト、QueryParam、RemoteAddr、DateTimeが含まれます。

 

3.スタートアップクラスにアノテーションを追加します

@EnableDiscoveryClient

4.ゲートウェイからログサービスと注文サービスにアクセスします

http:// localhost:8801 / log / log

http:// localhost:8801 / order / order

 

おすすめ

転載: blog.csdn.net/suoyx/article/details/115025535