ダボのフォールトトレラントクラスタサービス

ダボは、サービスフレームワークの分散アリババオープンソースであり、我々は非常に簡単にダボを通じて配布サービスを構築するために、そして実際のビジネスシナリオに応じて適切なクラスタフォールトトレラントモードを選択するために、アプリケーションは多くのために熱望していることができ、それが必要なだけです簡単な構成では、サービス提供者(プロバイダ)サービスが公開されることができることを意味することは、たとえば、非常に高いリアルタイム要件のシナリオでは、それが消費者(消費者からが望ましいかもしれない、自然なクラスタ・サービスである、分散型サービスコールを達成することができます)のみフォーククラスタダボモード設定を選択する、最短の応答時間を呼び出し、複数のノードで並列に送信することができるリターンを要求するコールのみ最速の応答を選択し、プロバイダ(プロバイダ)サービスをピアその後、結果はサービスコンシューマ(消費者)に戻され、明らかにこのように冗長サービスベースで呼び出して、より多くのリソースを消費する必要がありますが、リアルタイム・アプリケーションのための高い需要を満たすために。

、ダボフォールトトレラントクラスタサービス


ただコールはネットワークの問題が原因で失敗し、サービスプロバイダ(プロバイダ)が、サービスコンシューマ(消費者)が呼び出し要求を発行した場合、我々は将来的には、配信サービスをスタンドアロンモードダボサービスを使用していると仮定し、その後、我々はサービスコンシューマを設定することができますサービスプロバイダノードの公開サービスは、消費者、その後、失敗存在する場合、しかし、戦略を再試行して、消費者は、(戦略はリトライ処理が透明であるように構成されるべきであるリトライ)は、第2の再試行が成功し呼び出すこと牙は、その後どのように失敗を再試行しているので、我々は、クラスタのフォールトトレラントモードを採用する必要があり、障害による単一のサービスノードがサービスを提供できない場合ようにするだけでなく、フォールトトレラントクラスタコンフィギュレーションモードに応じて、他の利用可能なサービスノードを呼び出して、改善していますサービスの可用性。

単にダボ現在サポートされているクラスタのフォールトトレランスモードを入れて、特定のアプリケーションのシナリオに合わせ、それぞれが実際のニーズに応じて選択することができますビルトインサポートクラスタモードの6種類以下のダボ:


1、フェールオーバークラスタモード

コンフィギュレーションは、フェールオーバーです。このモデルは、フォールトトレラントクラスタダボされるデフォルトモードが選択され呼び出しが失敗し、それが自動的に通話サービスで利用可能な他のノードを試して戻って切り替わります

いくつかの冪等の動作は、読み出し動作と、パターンを使用することができるため、各呼側が同じであるため、自動的に通話を切り替えて発呼者に対して完全に透過的、もう一度試して選択することができます。

あなたが見ることができます応答は、遅延の再試行終わりをもたらすためにバインドされている場合、再試行の数が多いが発生した場合、それはプログラムアルゴリズムが非常にあり、そのような深刻な、ハードウェアをアップグレードする必要がネットワーク遅延として、当社のサービスプロバイダが質問にサービスを公開説明できます時間のかかるように、そして、調査を慎重にテストする必要があります。

たとえば、次のようにそれが明示的フェイルオーバーモードを指定することができ、デフォルトの設定では、上またはフェールオーバーモードの設定例になっていません。

<ダボ:サービスインタフェース= "org.shirdrn.dubbo.api.ChatRoomOnlineUserCounterService" 
    バージョン= "1.0.0"クラスタ= "フェイルオーバ"再試行= "2"タイムアウト= "100" 
    REF = "chatRoomOnlineUserCounterService"プロトコル= "ダボ"> 
    <ダボ:メソッド名= "queryRoomUserCount"タイムアウト= "80"リトライ= "2" /> 
</ダボ:サービス>

コールが再び呼び出すために2回再試行され失敗した場合は、上記の構成を使用してフェールオーバークラスタモード、100ミリ秒へのサービスレベルのコールのタイムアウトは、2回、最悪の場合、コール過ごす時間160msでの、メソッドqueryRoomUserCountタイムアウトは80ミリ秒で呼び出すことができ。サービス・インターフェースを呼び出すことが可能な他の方法があるorg.shirdrn.dubbo.api.ChatRoomOnlineUserCounterService場合は、他の方法が明示的に設定されていない使用のダボを継承します:プロパティは、サービス設定値。

 

2、フェイルファーストクラスタモード

構成はフェイルファストです。このモードは、フェイルファストモードと呼ばれ、コールは一度だけ、すぐにエラーが失敗しました

このモデルは、非冪等の操作に適しており、各コールの副作用は、書き込み動作として、異なります

例えば、取引システム私たちは、障害が、それは動作時の再起動順序の要求(別の新規受注)にするかどうかは通常、サービス消費者によって制御される、障害が発生した場合、順序を置きたいです。

 

3、フェールセーフクラスタモード

構成はフェイルセーフです。、呼び出しが失敗した場合、セーフモード失敗、単に呼び出しが失敗した無視

しかし、その後の監査のためのログファイルへの呼び出しを記録することができません

 

4、フェールバッククラスタモード

構成は、フェイルバックです。自動回復は、バックグラウンドのレコードは、再送タイマを要求に失敗した失敗しました。

典型的には、メッセージ操作を通知します。

 

5、フォーククラスタモード

構成がフォークされます。並行して複数のサーバを呼び出し、それが成功したリターンと同じくらいの長さです

通常、読み出し動作の高いリアルタイム要件のために使用されるが、より多くのサービスは、リソースを無駄にする必要があります。

 

6、ブロードキャストクラスタモード

構成が放送されます。

すべての放送プロバイダ、1つのコールずつ呼び出し、Renyiyitaiエラーはエラーである(2.1.0をサポート)。

通常、ローカルリソース情報を更新キャッシュなどのすべてのプロバイダに通知したり、ログインするために使用します。

 

6上記のモードは、本番環境で使用することができ、我々は実際のフォールトトレラントクラスタのシナリオに応じて適切なモードを選択することができます。

我々はいくつかのフォールトトレラントクラスタモードは、内蔵の提供していることダボは、アプリケーションのニーズを満たすことができないと感じた場合は、

ダボの枠組みへの拡張インターフェースが私を提供し、あなただけのインターフェイスcom.alibaba.dubbo.rpc.cluster.Clusterを実装する必要があるためにも、そのクラスタのフォールトトレラントモードを達成するためにカスタマイズすることができます。

 

二、ダボの負荷分散サービス

 

ダボフレームワークは、ロードバランシング機能を内蔵しており、拡張インタフェースを提供、我々は透過的に、サービスまたはサービスクラスタを拡張することができ、容易なサービスのスケーラビリティを向上させるために、必要に応じてノードを削除/追加します

ダボ構築されたフレームワーク以下のように、4つの負荷分散ポリシーを提供します。

1、ランダムロードバランス:ランダムポリシーは、設定がランダムですあなたは少し小さくてもよいと低いと主要な高の右の数を設定することができ、サーバーのリソースをフルに活用する助け、体重を設定することができます

2、ラウンドロビンロードバランス:ポーリングポリシーは、ラウンドロビンを配置されています。

3、LeastActiveロードバランス:構成がleastactiveです。呼び出すための要求の数のカウント、低速の処理要求ノードの要求が少なくなります

4、ConsistentHashロードバランス:ハッシュ政策の一貫性、具体的な構成は、ダボのドキュメントを参照してくださいすることができます。要求の同一の呼パラメータは、ノードがサービスを提供しないように失敗した場合、同じサービス・プロバイダ・ノードに送信される仮想ノード(他のサービスプロバイダ)に基づいて、整合性ハッシュアルゴリズムにマッピングされます

実際の使用では、唯一の戦略値のバランスをとる適切な負荷を選択する必要があり、配置することができ、以下では、負荷分散ポリシー構成の上記4種類の一例です。

<ダボ:サービスインタフェース= "org.shirdrn.dubbo.api.ChatRoomOnlineUserCounterService"バージョン= "1.0.0" 
    クラスタ= "フェイルオーバ"再試行= "2"タイムアウト= "100" ロードバランス= "ランダム" 
    REF = "chatRoomOnlineUserCounterService"プロトコル= "ダボ"> 
    <ダボ:メソッド名= "queryRoomUserCount"タイムアウト= "80"リトライ= "2"ロードバランス= "leastactive" /> 
</ダボ:サービス>


上記の構成は、また、ダボであるダボ構成の継承された特性を反映した:service要素構成されたロードバランスは=、ダボの子要素「ランダム」:メソッドは、無負荷分散戦略場合、デフォルトはロードバランスである=「ランダム「そうでなければ、ダボ場合:この方法は、ロードバランス=指定された」leastactive」、使用サブ要素の親要素指定されたポリシーをカバーするポリシー設定を負荷分散(ここで呼び出しqueryRoomUserCount方法leastactive負荷分散ポリシー)。

おすすめ

転載: www.cnblogs.com/lykbk/p/sdsd435345454545.html