SpringCloudアリババマイクロサービスの戦闘TEN - サービス・ゲートウェイ

REVIEW:ではSpringCloudアーキテクチャ、我々は別のゲートウェイサービスを展開する必要があるが、特定のバックエンドサービスに要求を転送するように設定されたルールに基づいて入り口への外部からのアクセス、およびゲートウェイサービスを提供し、この章の主な内容は、当社のマイクロプラスのサービスを提供することですゲートウェイSpringCloudゲートウェイ。

序文

私たちは、3つのサービスがありaccount-serviceproduct-serviceorder-serviceクライアントがあるWEB应用か、APP应用必要性、アクセス、バックエンドのデータ収集サービスには、あなたは、クライアントでの良好なアクセス・パスの3つのサービスを維持する必要があります。image.png

このアーキテクチャは、次のいくつかの典型的な質問があります。

  • 各マイクロサービスは、個々のアクセスドメインを設定するには、外部ネットワークへのオープンアクセスを必要とする、各サービスは、新たな運用・保守要員のconfigureドメインマッピングを聞かせする必要があります
  • クライアントは、すべてのマイクロサービスのアドレスへのアクセスを維持するマイクロサービスの数百数十、それがあるかどうかを想像する必要がありますか?
  • サービスは、アクセス制御インタフェースを必要とする場合、ユーザーはサーバー側のロジックの再書かれたセットであることを、すべての権利を呼び出す前に認証を受ける必要があります。
  • ...

我々は要求を転送する責任があり、アクセスゲートウェイ、限り、クライアントにマイクロサービス前に、ゲートウェイサービスを追加する必要がありますので、フィルタのゲートウェイへのアクセス権の検証ロジック、バックエンドサービスが懸念機関学校には必要ありません。テストコード;以下のようなアーキテクチャになるように、外部ネットワークアクセス用のドメイン名の外部アドレスを提供する唯一の必要性が、新しいサービスの運用および保守担当者は、ネットワーク構成を聞かせする必要はありません。image.png

ゲートウェイモジュールを作成します。

プロジェクトでビルドクラウドゲートウェイモジュールは、spring-cloud-gatewayループ内のマイクロサービスシステムとしても自身を登録し、ナコスナコスの物流センターに統合する必要があります。

  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cloud-aliaba</artifactId>
        <groupId>com.jianzh5.cloud</groupId>
        <version>1.0.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-gateway</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

    </dependencies>

</project>复制代码

  • スタートアップクラス
@SpringBootApplication
@EnableDiscoveryClient
public class GateWayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GateWayApplication.class, args);
    }
}复制代码

  • bootstap.yml
spring:
  application:
    name: cloud-gateway
  cloud:
    nacos:
      config:
        server-addr: 10.0.10.48:8848
        file-extension: yml
        namespace: 7e8ccc22-6f51-42fa-bcf1-db45f99dbf57复制代码

  • ナコスでゲートウェイのルーティングの設定を確立します
server:
  port: 8090
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 10.0.10.48:8848
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: product-service
        uri: lb://product-service
        predicates:
          - Path=/product/**
      - id: account-service
        uri: lb://account-service
        predicates:
          - Path=/account/**
      - id: order-service
        uri: lb://order-service
        predicates:
          - Path=/order/**复制代码

詳細な構成:

ID:のみすべてのルートを定義する必要が、繰り返すことはできません
URI:LB:// LB://固定文言は、ロードバランシングに示されます。つまり、サービスが名ナコスの中に登録されている
述語: -パス= /製品/ 使用「のパスをルート述語工場は」ルール/製品/要求はまた、マイクロサービス製品サービスに転送されます。

上記構成論理:
①にhttp://localhost:8090/product/**アクセスパスに転送されproduct-serviceたマイクロ・サービス/**
http://localhost:8090/account/**アクセスパスがに転送されるaccount-serviceマイクロ・サービス/**
http://localhost:8090/order/**アクセスパスがに転送されるorder-serviceマイクロ・サービス/**

  • 転送するかどうかを確認するために、すべてのサービスを開始します
    image.png

まあ、女性、友人、ここでは学生が昇進や賃金上昇の下で、優秀な学生です参照するには、それ以上のすべて、上のこの問題の内容はあなたです!あなたはあなたを助けるために、この記事を見つけた場合は、懸念を追加するには、以下のQRコードをスキャンしてください。「進む」プラス「見た目」は、良い習慣を形成するために!のは、あなたの次の時間を見てみましょう!image.png

記事のシリーズ

スキャンコード懸念マイクロチャネル公共番号やようこそ個人のブログ

おすすめ

転載: juejin.im/post/5e2256075188254df6437ed5