springcloudリボンのロード・バランシング

序文

雲のいくつかのシリーズの後、私たちはユーレカ読者が基本的な知識、または知識を求める人の列の雲シリーズにアクセスする必要があるかどうかだけ確認するために、簡単に多くのことをされます、その後の学習のための強固な基盤を持っていると思います。この主な記事は、Webサービスクライアントの呼び出しを実装するリボンを使用するアルゴリズムのバランスを取るリボンデフォルトロードする方法を説明します!

2つのリボンについて

リボンは、 WebサービスAPIコールの異なるプロトコルツールを統合することができ、クライアントのロードバランサです。

次のように主な機能は次のとおりです。

  1. プラグイン可能なロードバランシングを提供
  2. 統合サービスの発見
  3. 弾性回復フォールト
  4. クラウドのサポート
  5. 統合されたロード・バランシングクライアント・ロード

コアプロジェクトは次の通り:

リボンコア:負荷分散を達成するために、他のモジュールとの統合

リボンユーレカ:ユーレカクライアントベースのロードバランシング

リボンは-にHTTPClient:JSR-311が含まれてローディングがRESTをロードバランシングを実装します

三のユーレカ・クライアント

以前のプロジェクトユーレカクライアントパケット制御装置で作成され、以下のように、界面層の表現を提供し、その後、それぞれ、ユーレカクライアント例2を開始し、ポート8090、ポート8091。

/**
 * @Author lsc
 * <p> 知识追寻者,ribbon provider the restful api</p>
 */
@RestController
public class RibbonProvidderController {


    @GetMapping("zszxz/ribbon")
    public String testRibbon(){
        return "hell i am zszxz";
    }
}

四リボン、クライアント

4.1のpom.xml

下の親プロジェクトに新しいモジュールが追加リボンのクライアントであり、元の開始 - ウェブ依存性は、リボンが再びモジュールの依存関係を導入しないように、親プロジェクトで導入されています。

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
        </dependency>
    </dependencies>

4.2コンフィグ

RestTemplateクライアントコールに使用される、それは設定する必要があり、注釈@LoadBalanced開口リボンを追加するための方法は、負荷分散を表します。

/**
 * @Author lsc
 * <p> ribbon-restTemplate配置 </p>
 */
@Configuration
public class RibbonConfig {

    @Bean
    @LoadBalanced//表示用于负载均衡
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

4.3サービス

サービスクラスを作成し、restTemplate行動HTTP API呼び出しを使用しています。なお、ここでのポイントは、IPポートを使用しますが、直接サービスユーレカ・クライアントのアプリケーション名を使用してすることはありません。

/**
 * @Author lsc
 * <p> </p>
 */
@Service
public class RibbonService {

    @Autowired
    RestTemplate restTemplate;


    public String testRibbon(){
        return restTemplate.getForObject("http://eureka-client/zszxz/ribbon",String.class);
    }
}

4.4コントローラ

ブラウザアクセスのためのプレゼンテーション層のクラスを作成します。

/**
 * @Author lsc
 * <p> </p>
 */
@RestController
public class RibbonController {

    @Autowired
    RibbonService ribbonService;

    @GetMapping("ribbon/test")
    public String testRibbon(){
        return ribbonService.testRibbon();
    }
}    

4.5リボン起動クラス

リボンは、注釈を追加することが必要なクライアントベースの端末ユーレカ@EnableEurekaClientとして開始されます。

/**
 * @Author lsc
 * <p>知识追寻者 ribbon启动类 </p>
 */
@SpringBootApplication
@EnableEurekaClient
public class RibbonApp {

    public static void main(String[] args) {
        SpringApplication.run(RibbonApp.class,args);
    }
}

4.6 application.yml

ポート8092を使用してapplication.yml構成、登録されたアドレスサービスですピア1、ピア2、peer3。

server:
  port: 8092

spring:
  application:
    name: eureka-ribbon # 应用名称

eureka:
  client:
    service-url:
      # 服务注册地址
      defaultZone: http://peer1:10081/eureka/,http://peer2:10082/eureka/,http://peer3:10083/eureka/

4.7スタートプロジェクト

各開始クライアント、サーバー;図は、以下の

ここに画像を挿入説明

結果にアクセスするには、ブラウザ4.8

ブラウザの結果は、として、我々はrestTemplateはユーレカ・リボンでユーレカ-clinetモジュールからのHTTP APIコールを通じて達成リボンを組み合わせて使用​​することを、次のです。
ここに画像を挿入説明

ファイブリボンデフォルトのロードバランシング

LoadBalancerClientリボンは、情報のロードバランシングの例を得ることができるコアクラスリボン、あるコントローラ層法リボンクライアントモジュールを追加、メソッド本体は、インスタンスポートとホスト得られる;バランシングアルゴリズム我々の分析リボン負荷を容易に;

    @Autowired
    LoadBalancerClient loadBalanced;

    @GetMapping("ribbon")
    public String ribbon(){
        ServiceInstance choose = loadBalanced.choose("eureka-client");
        String s = "host is :" + choose.getHost() + "  port is :" + choose.getPort();
        System.out.println(s);
        return s;
    }

再起動リボンクライアントプロジェクト、それぞれ8090,8091の二つの例ユーレカ・クライアントAPIと呼ばれ、次のようにコンソール出力があり、ブラウザを使ってアクセス、リボンデフォルトのロードバランシングメカニズムがポーリングアルゴリズムで説明しました。

host is :peer1  port is :8091
host is :peer1  port is :8090
host is :peer1  port is :8091
host is :peer1  port is :8090
host is :peer1  port is :8091
host is :peer1  port is :8090
host is :peer1  port is :8091
host is :peer1  port is :8090

ここに画像を挿入説明

おすすめ

転載: www.cnblogs.com/zszxz/p/12081935.html