REVIEW:ではSpringCloudアーキテクチャ、我々は別のゲートウェイサービスを展開する必要があるが、特定のバックエンドサービスに要求を転送するように設定されたルールに基づいて入り口への外部からのアクセス、およびゲートウェイサービスを提供し、この章の主な内容は、当社のマイクロプラスのサービスを提供することですゲートウェイSpringCloudゲートウェイ。
序文
私たちは、3つのサービスがありaccount-service
、product-service
、order-service
。クライアントがあるWEB应用
か、APP应用
必要性、アクセス、バックエンドのデータ収集サービスには、あなたは、クライアントでの良好なアクセス・パスの3つのサービスを維持する必要があります。
このアーキテクチャは、次のいくつかの典型的な質問があります。
- 各マイクロサービスは、個々のアクセスドメインを設定するには、外部ネットワークへのオープンアクセスを必要とする、各サービスは、新たな運用・保守要員のconfigureドメインマッピングを聞かせする必要があります
- クライアントは、すべてのマイクロサービスのアドレスへのアクセスを維持するマイクロサービスの数百数十、それがあるかどうかを想像する必要がありますか?
- サービスは、アクセス制御インタフェースを必要とする場合、ユーザーはサーバー側のロジックの再書かれたセットであることを、すべての権利を呼び出す前に認証を受ける必要があります。
- ...
我々は要求を転送する責任があり、アクセスゲートウェイ、限り、クライアントにマイクロサービス前に、ゲートウェイサービスを追加する必要がありますので、フィルタのゲートウェイへのアクセス権の検証ロジック、バックエンドサービスが懸念機関学校には必要ありません。テストコード;以下のようなアーキテクチャになるように、外部ネットワークアクセス用のドメイン名の外部アドレスを提供する唯一の必要性が、新しいサービスの運用および保守担当者は、ネットワーク構成を聞かせする必要はありません。
ゲートウェイモジュールを作成します。
プロジェクトでビルドクラウドゲートウェイモジュールは、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
マイクロ・サービス/**
- 転送するかどうかを確認するために、すべてのサービスを開始します
まあ、女性、友人、ここでは学生が昇進や賃金上昇の下で、優秀な学生です参照するには、それ以上のすべて、上のこの問題の内容はあなたです!あなたはあなたを助けるために、この記事を見つけた場合は、懸念を追加するには、以下のQRコードをスキャンしてください。「進む」プラス「見た目」は、良い習慣を形成するために!のは、あなたの次の時間を見てみましょう!
記事のシリーズ
- SpringCloudアリババマイクロサービスリアル9 - Seataコンテナ
- SpringCloudアリババマイクロサービスの戦闘8 - Seata統合ナコス
- SpringCloudアリババマイクロサービスリアルセブン - 分散トランザクション
- SpringCloudアリババマイクロサービスリアル6 - のconfigure検疫
- SpringCloudアリババマイクロサービスリアル5 - ヒューズを制限
- SpringCloudアリババマイクロサービスリアル4 - バージョン管理
- SpringCloudアリババマイクロサービスの戦闘3 - サービスコール
- SpringCloudアリババマイクロサービスリアル2 - 登録サービス
- SpringCloudアリババマイクロサービスリアル1 - 基本的な環境準備
スキャンコード懸念マイクロチャネル公共番号やようこそ個人のブログ