ステートフルおよびステートレスサービス(RPM)

転送:https://www.cnblogs.com/xiangkejin/p/9010516.html

 

-に基づいて決定されたサービスの状態、またはステートレスなサービスがあるか否かをサーバ用プログラム、サーバは、コンテキストを含むかどうかイニシエータからの二つの同一の要求が。

リクエストのステータス、サーバは一般的に、関連情報要求を保存する必要がある、各要求は、以前のデフォルトのリクエスト情報を使用することができます。

ステートレス要求は、サーバー・プロセスは、それ自体が格納されているすべての要求によって搬送される情報、および他のサーバを処理することができなければならない、と共通の情報がすべての要求のために使用することができます。

 

比較

ステートフルサービスは、多くの場合、トランザクション実装するために使用されている(いない唯一の方法は、以下の追加プログラムがあります)。一般的な例を挙げて、ショッピングモールで製品を購入。その上で注文、支払いとを確認するために、ショッピングカート、ステップ数に通過する必要があります。

HTTPプロトコル自体はステートレスなので、ステートフルなサービスを実現するために、我々はいくつかの余分なプログラムを必要としています。ので、お支払いは、その後、ショッピングカートから商品情報を削除するときに、セッションの最も一般的な例は、ユーザが選択した商品(ショッピングカート)は、セッションに保存します 


主に考慮すべき拡張性から、ステートレスに設計されたサービスに。

サーバがステートレスである場合には、クライアントのために、あなたがしてすることができ、任意のサーバーに要求を送信することができる負荷分散を達成するために他の手段を展開のレベルを

サーバーがステートフルである場合、クライアントは常に呼ばれる業務用サーバに同じ要求、置く必要があるので、それは簡単に達成することができないセッション移行」この問題を解決するために、つまり、および他のプログラムを 

6486d16d-38c6-38de-837f-637ff99c30d4.png

3、セッションとクッキーを 

セッションとクッキーは、トランザクションに基づいて実現することができると考えることができ、セッションは、ステートフルで、ステートレスなクッキーが 

4またはステートレストランザクションメソッドが実装 

必ずしもこの記事は、いくつかの追加を提供し、そこ事務の状態を達成するためのサービスを使用していませんプログラムの参照は 
、一例として、シーンの複数の提出を引用:ユーザーが提出した2つのページに分かれて、大量のデータを提出する必要があり 

d2a571e3-dea4-3fad-bf5b-e896730ebf10.png

、ここで最初の1,2,3のフィールドを提出し、二回httpリクエストに関連し、2番目のフィールドは、送信します4,5,6は、 

セッションを使用し、この要件を達成することが容易であり、データ・サーバは、セッションに格納され、最初に送信し、その後必要に応じて第二の形態に戻る必要があり、その後、最初に提出されたデータを削除し、そして第二のデータ集約の提出後に、使用してデータベースに格納することができ 

ない場合もセッションを達成することができ、サーバは、第1の要求を受信します リターンの最初の2つのフォーム上の隠し要素などのデータ;このユーザーの第二は、提出され、それは暗黙のうちに再びその最初のデータを提出し、サーバーのすべてのデータのデータベースに 
HTML5を使用して、あなたはまた、さらに、最適化することができ、クライアントのデータが最初に提出することができ、中のsessionStorageに保存され 
たクッキーと同じを達成することができる同様の理由ですが、非常に良いではありません 

一般的には、代替案の3種類(隠されたフォーム要素は、のsessionStorage、クッキー)はステートレスなサービスを実現するために、サーバ側でデータの一時保存を避けました。基本的に、これらの三つのプログラムの要求には、含まれているこの記事の冒頭の定義に沿って、必要なすべてのデータ、 

V.ステートフルなサービスは、非国家サービスに変換されます 

上のすべての情報に加えて、この記事の冒頭の定義によれば加えて、要求が、別の方法は、サービスの状態なしで実装することができる単一の場所で、すなわち情報が共有されるとプレゼンスサーバとは独立して存在する 
、例えば、又は同様のセッションを取るために、サーバに保存されたデータ、各縮小クライアントは、(トラフィックを節約するために)データ量の転送を要求するが、セッションは、中央記憶されているセッションで別個の層中に、例えば、。この場合、サーバーもステートレス、あなたは水平展開を行うことができ 

47bd72bf-1162-33d2-be07-0ddcebdc633a.png


VIの概要 
展開のレベルを考慮する必要が、より良い選択をしないときにステートフルサービスは、トランザクションを実装することは比較的容易である 
ことができるステートレスサービスの利点便利な水平方向のスケーリングが、トランザクションを実行する、いくつかの追加のアクションを実行する必要がある 
サービスの状態があるだろう、セッションなどを剥離しては、ステートレスサービスに変換しました 

おすすめ

転載: www.cnblogs.com/helios-fz/p/10988174.html