領事は、ゲートウェイ・クラスタサービス(春クラウドゲートウェイ)を追加しました

領事クラスタは、ゲートウェイサービスに参加します

アーキテクチャ図

altテキスト
外部ゲートウェイサービス消費者サービス、生産者の内部を介して外部のアプリケーションやウェブサイト自体も内部の内部ゲートウェイサービス消費を通じて消費者、消費者の行動かもしれません。
内部一つ一つの外部ゲートウェイと、単一のサーバーに展開ゲートウェイ領事Clientは、このゲートウェイサーバに少なくとも2つのグループが、問い合わせの後に使用する外部フロントゲートウェイ負荷分散装置、内部使用領事クライアントゲートウェイサービス、内部ゲートウェイがあるでしょう責任領事によるロードバランシング。

デモ環境をセットアップします

領事Cluster Serverの+クライアントモードごとに、我々は、更新とゲートウェイサービスと顧客サービス、我々は唯一のゲートウェイサービスをシミュレートするために開始デモ環境を起動します。
ばねクラウドゲートウェイとばねクラウド領事消費者の両方のコンテナを削除します。

docker pull bluersw/spring-cloud-gateway:v3

docker run --name=spring-cloud-gateway -d -p 9000:9000 bluersw/spring-cloud-gateway:v3 /opt/consul/./consul agent -data-dir=/opt/consul/data -config-dir=/opt/consul/config -node=gw-cc  -join 172.17.0.2

docker exec spring-cloud-gateway  /usr/local/java/bin/java -jar /opt/spring-cloud-gateway-0.0.1-SNAPSHOT.jar

docker pull bluersw/spring-cloud-consul-consumer:v3

docker run --name=spring-cloud-consul-consumer -d -p 9003:9003 bluersw/spring-cloud-consul-consumer:v3  /opt/consul/./consul agent -data-dir=/opt/consul/data -config-dir=/opt/consul/config -node=consumer-cc  -join 172.17.0.2

docker exec  spring-cloud-consul-consumer /usr/local/java/bin/java -jar /opt/spring-cloud-consul-client-0.0.1-SNAPSHOT.jar

altテキスト
altテキスト

TAG:V3バージョンゲートウェイと消費者ミラーリングコンテンツ

(また、領事クライアントに登録)以下のように、ばねクラウドゲートウェイプロジェクトの設定ファイルは、主に高めるために、変更された好む-IPアドレスまたはIPアドレスを領事サービスを取得することはできません。

server:
 port: 9000
spring:
  cloud:
    consul:
      host: 127.0.0.1
      port: 8500
      discovery:
        register: true
        prefer-ip-address: true
        health-check-path: /actuator/health
    gateway:
      routes:
        - id: test_route
          uri: lb://service-provider
          predicates:
            - Path=/service-provider/{segment}
          filters:
            - SetPath=/{segment}
            - name: Hystrix
              args:
                name: service-provider-fallback
                fallbackUri: forward:/service-provider-error
            - name: Retry
              args:
                retries: 3
                statuses: BAD_GATEWAY,BAD_REQUEST
      default-filters:
        - name: Hystrix
          args:
            name: fallbackcmd
            fallbackUri: forward:/default-error
  application:
    name: PC-ApiGateWay

他のサービスゲートウェイサービスコールの内部消費をシミュレートするために、春・クラウド・領事・クライアントプロジェクト(春・クラウド・領事-消費者が ) 次のコードを追加します
装うスタイルのプロキシクラスを作成します

//网关服务
@FeignClient(name="PC-ApiGateWay")
public interface GatewayRemote {

    //网关上的请求地址和外部用浏览器浏览的路径相同
    @RequestMapping("/service-provider/hello")
    public String Hello(@RequestParam String name);

}

コントローラは、以下の方法で増加しています。

    @Autowired
    GatewayRemote gatewayRemote;
    
       @RequestMapping("/TestGW")
    public String TestGW(){
        String first = gatewayRemote.Hello("first-SWS");
        String second = gatewayRemote.Hello("second-SWS");
        return first + " | " + second;
    }

アナログ外部アクセス

ブラウザで直接アクセス127.0.0.1:9000/service-provider/hello?name=sws、サービスリターン情報を取得します:
altテキスト

アナログ内部アクセス

ブラウザでアクセス127.0.0.1:9003/TestGWは、サービスリターン情報を取得します:
altテキスト

ソース

Githubのリポジトリます。https://github.com/sunweisheng/spring-cloud-example

おすすめ

転載: www.cnblogs.com/bluersw/p/11610713.html