高可用性dubbo--

A、飼育係のダウンタイム

  飼育係登録センターのダウンタイムは、あなたはまた、サービス公開ダボを消費することができます

  堅牢性:

  1. 監視センターのシュートダウンは、使用に影響を与えるが、サンプリングデータの一部が失われていません
  2. データベース遊び人離れた後、我々はまだ、キャッシングすることにより、サービスのレジストリリストクエリを提供することができますが、新しいサービスを登録することはできません
  3. レジストリピア・クラスタは、Renyiyitai一顧オフした後、自動的に別のものに切り替わります
  4. すべてのレジストリ撃墜した後、サービスプロバイダやサービスの消費者はまだローカルキャッシュを介して通信することができます
  5. サービスプロバイダステートレス、Renyiyitaiシュートダウンした後、影響はありません。
  6. すべてのサービスプロバイダが離れてぐずぐずした後、サービスコンシューマアプリケーションを使用することができ、かつ無制限の再接続は、サービスプロバイダの回復を待っていません。

二、直接ダボ

  開発とテスト環境では、通常は指定されたサービスプロバイダをテストし、登録センターバイパスする必要があります。この場合は、あなたがポイント接続への直接のポイントが必要になる場合があり、サービスプロバイダは、リストプロバイダの登録プロバイダを無視します。インタフェースポイントの設定は、レジストリからリストを取得するにはB・インタフェースには影響を与えません。

  

 

  XML設定2.1

< ダボ:参照ID = "xxxService" インターフェイス= "com.alibaba.xxx.XxxService" URL = "ダボ:// localhostを:20890"  />

  2.2コンフィギュレーション-d

   JVMの起動パラメータに-Dパラメータマッピングサービスのアドレスを追加します。

Javaの-Dcom.alibaba.xxx.XxxService =ダボ:// localhostを:20890

  2.3の.properties設定ファイル(審査官のネットワークを参照してください)

 

三、クラスタ構成で均衡ダボロード

  duboは、クラスタのロードバランシング、これらの戦略のデフォルトのバランスをとるために使用される多くの戦略を提供しますrandom

  3.1  ランダムロードバランス   のランダム・ロード・バランシング 

  • よるとメス、重みのランダムな確率に設定します。
  • 高い部分における衝突の確率が、より大きなコール量、より均一に分布。確率分布に基づいて重い重みを使用する場合、動的重量の右プロバイダを調整するのに役立つ、同じです。

  3.2  ラウンドロビンロードバランスポーリングロードバランシング

  • ラウンドの共同顧問バレル、ロビン・サイクル・レートを決定するために重みを使用しています。
  • リクエストを処理するために非常に遅い速度で1つのプロバイダが存在する場合、例えば、要求の蓄積を引き起こす可能性があり、プロバイダを遅らせるためにフローが、それは、それは通常のリクエストを受け取ることができることを意味、まだ効果的です。ラウンドロビン戦略によると、ユーザーが悪い状態の取引先が分からない、所定の速度プロバイダに要求を送信し続けます。最後に、私たちは、この不健康なプロバイダの要求の多くを得るだろう。

  3.3  LeastActive LOADBALANCE少なくとも能動負荷バランシング

  • 確率的メカニズムに基づいて、少なくともアクティブな活動は、actives手段の消費者が、番号がまだリクエストが送信されてきた戻っていません。
  • より遅いプロバイダが少ないの要求、遅く高いので、プロバイダを受け取ることになりますactives

  3.4  ConsistentHashロードバランス連続ハッシュ負荷分散

  • リクエスト整合性ハッシュ、同じパラメータは常に同じプロバイダに送信されます。
  • ステーションは、プロバイダにリンクされている場合は、元の要求は、他のプロバイダに等しい株式で、うではない劇的な変化原因、仮想ノードに基づいて、プロバイダに送信しました。アルゴリズムを参照します。http://en.wikipedia.org/wiki/Consistent_hashing
  • デフォルトでは唯一のハッシュ最初の引数、変更したい場合は、configure <ダボ:パラメータキー=「hash.arguments」値=「0,1」/>
  • デフォルトの仮想ノードが160部、修正したい場合は、configure <ダボ:パラメータキー=「hash.nodes」値=「320」/>

  3.5の設定

    3.5.1サーバーのサービスレベル

< ダボ:サービスのインターフェース= "..." ロードバランス= "ラウンドロビン"  />

    3.5.2顧客サービスレベル

< ダボ:参照インターフェイス= "..." ロードバランス= "ラウンドロビン"  />

    3.5.3サーバーメソッドクラス

< ダボ:サービスのインターフェース= "..." > 
    < ダボ:メソッド= "..." ロードバランス= "ラウンドロビン" /> 
</ ダボ:サービス>

    3.5.4クライアントクラスのメソッド

< ダボ:参照インターフェイス= "..." > 
    < ダボ:メソッド= "..." ロードバランス= "ラウンドロビン" /> 
</ ダボ:参照>

 

第四に、サービス低下

  4.1サービスが格下げ何ですか

  場合は、サーバーの圧力サージ、実際のビジネスの状況に応じて、いくつかのサービスおよびページの流れに対処するか、政策プロセスを変更する簡単な方法を持っている、コアトランザクションや効率的な操作の正常な動作を保証するために、サーバーのリソースを解放しません。

  サービスが一時的に非クリティカルなサービス低下によって遮蔽することができる、および返品ポリシーは、それに対して定義されました

  ダイナミック・コンフィギュレーション・ルールは、レジストリに公開されます。

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory。クラス).getAdaptiveExtension(); 
レジストリのレジストリ = registryFactory.getRegistry(URL.valueOf( "飼育係://10.20.153.10:2181" )); 
registry.register(URL.valueOf( "オーバーライド://0.0.0.0/com.foo.BarServiceカテゴリ=コンフィギュレータ&ダイナミック=偽&アプリケーション= FOO&モック=力:?リターン+ヌル"));
  • 設定mock=force:return+nullこれは、サービスへのすべてのコールがリモート呼び出しなしで、直接戻りNULL値を持つことになります。一般的に、特定の非クリティカル遅いサービスへの影響を軽減するために使用。

  • また、あなたはまたに設定を変更することができますmock=fail:return+null呼び出しが失敗した後、あなたはNULL値を取得します。コールするリモートユーザーの試み呼び出しが成功した場合、実際の結果が得られます。呼び出しが失敗した場合は、null値が得られます。一般的に特定の非クリティカルなサービスを許容するために使用。

  

五、フォールトトレラントクラスタ

  クラスタの呼び出しが失敗した場合、dubo申し出フォールトトレラントソリューションの様々な、デフォルト・フェイルオーバー・クラスタ(フェイルオーバー再試行)

  

 

  5.1フォールトトレラントクラスタモード

   1. フェールオーバークラスタ

   障害発生時の自動切り替えの失敗は、他のサーバーを再試行してください。通常の読み取り操作のために使用されるが、再試行がより長い遅延をもたらすでしょう。リトライスルー=「2」(最初を除く)再試行の数を設定します。

    再配置され、以下のように番号を再度:

< ダボ:サービスの再試行回数= "2"  />

   若しくは

< ダボ:基準リトライ= "2"  />

   若しくは

< ダボ:リファレンス> 
  < ダボ:メソッド= "findFoo" リトライ= "2"  /> 
</ ダボ:参照>

  2.Failfastクラスタ

   のみ通話を開始するためのクイック失敗は、すぐにエラーが失敗しました。書き込み操作は、一般に、新しいレコードとして、非冪等の自然の中で使用されます。

   3フェイルセーフクラスタ

   セキュリティ障害、異常、直接無視。監査ログを書き込むことが一般的に動作可能。

   4フェイルバッククラスタ

   自動回復は、背景レコード失敗した要求、再送タイマを失敗しました。典型的には、メッセージ通知動作。

    5クラスタをフォーク

   長い成功の復帰などとしてあること、並行して複数のサーバを呼び出します。通常、読み出し動作の高いリアルタイム要件のために使用されるが、より多くのサービスは、リソースを無駄にする必要があります。=「2」フォークを介して並列の最大数を設定することができます。

    6.Broadcastクラスタ

   すべてのブロードキャスト・プロバイダー、1つのコールずつ呼び出し、Renyiyitaiエラーはエラーです。典型的には、このようなキャッシュなど、すべてのプロバイダに通知したり、ローカルリソース情報をアップデートログインするために使用します。

  5.2クラスタモードの設定

  以下の例は、消費者のクラスタコンフィギュレーションモードでサービスを提供しています

< ダボ:サービスクラスタ= "フェイルセーフ"  />

    若しくは

< ダボ:基準クラスタ= "フェイルセーフ"  />

 

 

おすすめ

転載: www.cnblogs.com/xiao-ran/p/12013899.html