クラスター接続のための通信の信頼性
NCache は、クラスター接続のためのコマンド再試行および要求照会機能を通じて通信の信頼性を提供し、ネットワークまたはファイアウォールの問題により実行されなかった可能性のあるコマンドの通信と実行を保証します。
これらの機能は、書き込み操作 (追加/挿入/削除) など、特定のコマンドがキャッシュの状態を変更するというルールに依存しています。 これらのコマンドは次のように呼ばれます。 安全でない コマンドであり、一度実行すると、指定しない限り再度実行することはできません。 一方、読み取り操作 (Get コマンド) など、キャッシュの状態を変更せずにキャッシュ上で安全に繰り返し実行できるコマンドがあります。 これらは次のように呼ばれます 安全な コマンド。 コマンドの再試行は安全なコマンドに対して機能しますが、要求の問い合わせは安全でないコマンドに対して機能します。
クラスター接続のためのコマンドの再試行
コマンドの再試行は、名前が示すように、クライアントとキャッシュ サーバー間の接続が切断された場合にコマンドの実行を再試行します。これは、次のいずれかのシナリオの結果として発生する可能性があります。
接続が切断されたときにコマンドを含むリクエストが送信されており、リクエストはサーバーに到達しませんでした。
コマンドを含むリクエストはサーバーに正常に送信されましたが、接続が切断されたときにリクエストが受け付けられたかどうかは不明です。
したがって、リクエストがサーバーに送信される前に接続が切断されたことが確実な場合は、リクエストがサーバーに再送信されるときにコマンドが再試行されます。
不確実な場合は、コマンドのステータスが安全か安全ではないかがチェックされます。
コマンドが安全である場合、コマンドは単に再試行されます。
安全でない場合は、キャッシュ クラスター内の別のサーバー ノードに問い合わせが行われ、リクエストのステータスが確認されます。 次に、リクエストの状態をサーバーに返すリクエスト問い合わせからの応答に従ってアクションが実行されます。 問い合わせのリクエストについては、この章で詳しく説明します。
ユーザーは、各コマンドの再試行回数と再試行間隔を秒単位で設定できます。
コマンドの再試行とその間隔は、 <ncache-server>
タグを付ける client.ncconf in %NCHOME%\config
(Windows)または \opt\ncache\config
(Linux)。 デフォルトでは、コマンドの再試行は3に設定され、間隔は0.1秒に設定されています。
<ncache-server ... command-retries="3" command-retry-interval="0.1" ... />
クラスター接続に関する問い合わせのリクエスト
要求照会は、受信側ノードのサーバー側で安全でないコマンドを含むすべてのクライアント要求をログに記録します。 これは、クライアントとクラスター間のフォールト トレラントで信頼性の高い通信を保証するために使用されます。 接続が切断された場合、クライアントは安全でないコマンドのステータスをクラスターから問い合わせることができます。 失敗したリクエストのステータスは次のいずれかになります。
お問い合わせからの回答 | 奪われた行為 |
---|---|
リクエストがサーバーノードによって受信されませんでした。 | コマンドを再試行してください。 |
リクエストは受信されましたが、まだ処理されていません。 | リクエストが処理されるのを待って、再度問い合わせてください。 |
リクエストが処理されました。 | 問い合わせに対して完了したリクエストの応答を送信します。 |
要求の照会が無効になっていて安全でないコマンドが失敗した場合、将来の安全でないコマンドを信頼できるようにする場合は、ユーザーに機能を有効にするよう求める例外がスローされます。 デフォルトでは、リクエストの問い合わせは無効になっています。
要求照会はノード固有の設定であり、次の場所にあるキャッシュ サーバー構成ファイル内の次のプロパティを通じて有効にできます。
- .NET: Alachisoft.NCache.service.exe.config に位置
%NCHOME%\bin\service
. - .NET Core Windows: Alachisoft.NCache.Service.dll.config に位置
%NCHOME%\bin\service
. - .NET Core Linux: Alachisoft.NCache.Daemon.dll.config に位置
/opt/ncache/bin/service
. - Java ウィンドウ: Alachisoft.NCache.Service.dll.config に位置
%NCHOME%\bin\service
. - Java Linux: Alachisoft.NCache.Daemon.dll.config に位置
/opt/ncache/bin/service
.
<add key="NCacheServer.EnableRequestInquiry" value="False"/>
安全でないコマンドを含むリクエストは、クライアントによって確認されるまでサーバー側に記録されたままになります。 クライアントは、確認応答されたリクエストの識別子を次のリクエストに便乗させます。 確認応答を受信すると、サーバーは確認応答に先行する要求ログをクリアします。 ただし、リクエスト ログがクリアされない状況が発生する可能性があります。 ここで、各ログには自然な有効期限があり、次のプロパティを通じて変更できます。
- .NET: Alachisoft.NCache.service.exe.config に位置
%NCHOME%\bin\service
. - .NET Core Windows: Alachisoft.NCache.Service.dll.config に位置
%NCHOME%\bin\service
. - .NET Core Linux: Alachisoft.NCache.Daemon.dll.config に位置
/opt/ncache/bin/service
. - Java ウィンドウ: Alachisoft.NCache.Service.dll.config に位置
%NCHOME%\bin\service
. - Java Linux: Alachisoft.NCache.Daemon.dll.config に位置
/opt/ncache/bin/service
.
<add key="NCacheServer.RequestInquiryCleanInterval" value="15"/>
も参照してください
心拍
複数のNICを使用してクラスターとクライアント/サーバーIPをバインドする
起動時にキャッシュを自動開始
Nagleのアルゴリズム