RPCオン

RPC(リモートプロシージャコール)

基盤となるネットワークプロトコル技術を理解する必要なしに、ネットワークを介してリモートコンピュータからのサービス要求をリモートプロシージャコールプロトコル。
個人的に私は単にRPCについて話をする意味がないと感じています。RPC RPCは、フレームRPC、RPC一般化プロトコル(2つの狭いRPC後レッツ・コール)に分割する必要があります

広い意味でのRPC

ネットワークを介してリモートコンピュータ上で、いわゆる広義のRPCコールサービスは、RPCに応じて呼び出すことができます。だから、どんなアコードの説明は、RPCに属している必要があります。一般的なWebサービスを含む、個人的に実際にRPCとして理解することができると感じています。

RPC(アーキテクチャー)フレームワーク

RPCフレームワークの原則

PRCアーキテクチャコンポーネント

4つのコア構成要素、すなわち、クライアント、クライアントスタブ、サーバーおよびサーバースタブを含む完全なRPCアーキテクチャでは、これはスタブスタブとして理解することができます。

1.クライアント(クライアント)、発信者サービス。
2.クライアント・スタブ(クライアントスタブ)、クライアント要求パラメータおよびネットワークメッセージにパッケージ化し、リモートを介してサービングネットワークに送信される、メッセージ・サーバのアドレスを記憶します。
3.サーバー(サーバー)、真のサービスプロバイダ。
4.サーバーのスタブ(サーバスタブ)は、クライアントがアンパックメッセージとローカルメソッド呼び出しによって送信されたメッセージを受信します。

PRCアーキテクチャのプロシージャコール

(出典:
(1)クライアント(クライアント)ローカル呼び出しモード(すなわちモードインターフェイス)コールサービス、
(2)クライアント・スタブ(クライアント・スタブ)コールを受信し、メソッド、パラメータ等の電荷がネットワーク伝送を行うことができるように組み立てられていますメッセージ本体(バイナリメッセージボディに標的配列);
(3)クライアントは、ソケットを介してサーバにメッセージを送信する
(4)サーバ・スタブ(サーバ・スタブ)復号する逆シリアル化メッセージ(メッセージオブジェクトを受信した後);
(5)サーバ・スタブ(サーバ・スタブ)は、復号結果に基づいて、ローカルサービスを呼び出す;
(6)ローカルサービスの実行とリターン結果サーバ・スタブ(サーバ・スタブ)に、
7)サーバ・スタブ(サーバ・スタブ)リターン結果メッセージ(結果メッセージオブジェクトシリアライゼーション)に充填し;
(8)は、サーバ(サーバ)は、ソケットを介してクライアントにメッセージを送信し
、クライアント・スタブ(クライアント・スタブ)結果メッセージを受信し、デコード((9)。結果メッセージが送信されるシリアル化);
(10)クライアント(クライアント)は、最終的な結果を与えます。

RPCの目標は、これらのステップが封入されているようにすることです-2,3,4,7,8,9-

一般的なRPCフレームワークおよび分類

通信プロトコルレベルから1.、に分けることができる:
HTTPベースのプロトコル(例えば、テキストベースのSOAP(XML)、レスト(JSON )、 バイナリヘッセ(バイナリ)に基づく)
TCPプロトコルに基づいて(通常ミナ、網状の手段によっておよび他の高性能ネットワークフレーム)

分割開発言語とプラットフォームの異なるレベルからの2:
単一の言語またはプラットフォーム固有のサポート通信技術(例えばRMI Javaプラットフォームとして、.NETプラットフォームリモーティング)は
(等HTTPレスト、倹約、など)は、クロスプラットフォームの通信技術をサポート
:ビューの呼び出しプロセスの観点から3に分割される
同期通信コール(同期RPC)
非同期通信コール(MQ、非同期RPC)

(順不同)RPC共通のフレーム(テクニカル)
1.Netty
網状フレームRPCは、に限定されるものではなく、より多くのネットワークプロトコルは、HTTP、RPCのように、フレームワークとして実装され、効率的な通信ネットワークを必要とすることが可能です網状ベースとして選択しました。
2.brpcの
BRPCがいるProtobuf RPCインターフェースフレームワークをベースとし、百度内の全ての内部百度RPCプロトコルを包含し、「百度-RPC」と呼ばれ、サードパーティ契約の様々なサポートされています。
3.Dubbo
ダボは、Springフレームワークに依存する、リモートインタフェースは、Javaインターフェイスに基づいている、アリババによって開発されたRPCフレームワークで
4.gRPC
主にモバイルアプリケーションの開発及びHTTP2、設計された標準ベースのプロトコルのために、高性能、汎用オープンソースのRPCフレームワークを開発グーグルベースいるProtobuf(プロトコルバッファ)直列化プロトコルの開発、および多くの開発言語をサポートしています。
5.Thrift
倹約は、以前RPCとして知られているのApacheプロジェクト(http://thrift.apache.org)は、IDL(インタフェース記述言語)のような倹約を用いて、フェイスブックによって開発されたフレームワークです。
6.jsonrpc
JSON-RPCは、ステートレスと軽量のリモートプロシージャコール(RPC)プロトコルです。
7.RMI
についてここで話はむしろ常識RMIに比べて、JavaのRMIであり
、JRMP(JavaリモートMessageing Protocol)を使用してRMI JRMPが解決ので、安心して純粋なJavaは、分散、Javaのカスタム通信プロトコルのために設計されていますスキーム
8.Hessian
ヘッセはツールonhttp軽量リモーティングで、RMIを使用するためのシンプルな機能を提供します。Webサービス、ヘッセは、より簡単かつ迅速に比較しました。これは、バイナリプロトコルを使用するため、バイナリRPCプロトコルであり、それはよくバイナリデータの伝送に適しています。
9.motan
Weibo Javaのオープンソースのフレームワーク。これは、2016年5月の収入で、2013年に開始し、比較的遅く生まれました。Motanは広くサービスの何百ものための呼び出しを完了することはほぼ千億日、マイクロブログのプラットフォームで使用されてきた
10.SpringCloud

RPC比較的共通のフレームワーク

(個人的な使用はあまり良いの記事も、その後のサプリメントを通知した場合、自己Baiduは、メッセージを残してくださいしてください、1つまたは2つだけを使用し、経験しました)

RPCプロトコル

(Baiduの百科事典)
RPCプロトコル
英語本来の意味:リモートプロシージャコールプロトコル
の中国の解釈:(RFC-1831)は、もともとRFC-1050で定義されたプロトコルを、リモーティング。
注:ネットワークを介してリモートコンピュータからのサービス要求の一種で、基盤となるネットワークプロトコル技術を理解する必要はありません。
RPCプロトコルは、例えばTCPまたはUDPのようないくつかの伝送プロトコルが、存在することが想定され、これは、番組データを搬送する情報との間の通信です。OSIモデルは、ネットワーク通信、トランスポート層及びアプリケーション層を横切るRPC。RPCは、より簡単に含むマルチプログラム分散ネットワーク、を含む、アプリケーションの開発を可能にします。

二つの異なる構造からのリモートプロシージャコール(RPC)プロトコル情報:コール情報と返信情報。

RPCコール情報形本体次
構造体call_body {
unsigned int型のrpcvers;
unsigned int型PROG;
unsigned int型のVersに、
unsigned int型のPROC;
CRED opaque_auth;
opaque_auth VERF;
1パラメータ
2パラメータ...
}。

次の形でRPC応答メッセージ: 
{STAT reply_stat列挙
MSG_ACCEPTED = 0、 
。MSG_DENIED = 1 
}。

MVCアーキテクチャ、RPCアーキテクチャ、SOAアーキテクチャ、マイクロアーキテクチャ功労

(からの転送
https://blog.csdn.net/lmaosheng/article/details/88337678
http://www.pianshen.com/article/8405242110/)
ここに画像を挿入説明

モノマーアーキテクチャ

MVC(モデルビューコントローラ)

Mは、ビジネスモデルであり、ユーザインタフェースは、Vを意味し、Cはコントローラであり、目的は同じプログラムが異なる形式を使用できるように、MVC MとVの実装コードの分離を使用することです。目的が変更M、Vが同期されるべきであるならば、C MとVシンクの存在を保証することです。
トラフィックが徐々に増加すると、ますます小さくなって加速を高めるために、マシンをもたらすために、単一のアプリケーションは、アプリケーションがスプリットは、効率を改善するために、いくつかの異なるアプリケーションにあります。
事業規模が非常に小さい場合には、すべての機能は、デュアルフロントロードバランサによって同じプロセス、負荷や気分転換に配備されています。
このとき、フロントページの開発を加速するために、MVCの別々の前面と背面のフレームロジックが重要です。
技術に代わって:Struts2の、springMVC、春、MyBatisのなど

マルチサービスアーキテクチャ

RPC(リモートプロシージャコール)リモートプロシージャコール

RPC(リモートプロシージャコール)リモートプロシージャコール、彼は基本的なネットワークプロトコル技術を理解する必要なしに、ネットワークを介してリモートコンピュータからのサービスの要求です。

より多くの垂直アプリケーションとして、アプリケーション間の必然的な相互作用は、変化する市場の要求に迅速に対応する独立したサービスとして、コアビジネスから引き出され、徐々に安定したサービスセンターを形成し、フロントエンドアプリケーションされます。

このとき、フレームのRPCサービスの多重化や分割を高めるために重要です。

SOA(サービス指向アーキテクチャ)、サービス指向アーキテクチャ

ESB(Enterpariseサービスバス)エンタープライズサービスバス、サービス機関。主にサービス間の相互作用にサービスを提供しています。ESBは、単にそれぞれのサービングノードを接続するための導管です。、異なるサービス契約を別のシステムを統合するために、ESBは、変換を行わので、異なるサービスの相互運用性という、メッセージを説明するために作業をルーティングします。

負荷分散、フロー制御、暗号化、監視サービス、例外処理、モニタリング緊急:ESBは、次のような特徴が含まれます。

より多くのサービスとして、キャパシティ・アセスメント、リソースおよびその他の小さなサービスの問題の廃棄物は、クラスタの利用率を向上させ、リアルタイムの圧力管理クラスタ能力へのアクセスを増加させる必要性に基づいて徐々に新興、今回派遣センターです。

状態を実行しているガバナンスとサービスライフサイクル管理と制御がボトルネックになります。

この場合、機械の稼働率を向上させるために、サービス(リソーススケジューリングおよびコントロールセンター)の品質を向上させるSOAサービスのガバナンスが重要です。

SOAのアーキテクチャの特長:

1.システムインテグレーション:通常のシステム間のガバナンススター構造をカーディング、このステップがしばしば必要とされ、エンタープライズ・システム、システム間のオリジナル散乱、予定外のネットワーク構造との間の通信の問題を解決するために、システムの観点に立っこのようないくつかのESBなどの製品、だけでなく、技術基準、サービス管理の実践を紹介し、このステップのコア問題に対処するために、[注文]されます

2.サービスのシステム:立っての機能の点、再利用可能に抽象サービスロジック、組み立て可能サービス、サービスのオーケストレーションによって、高速再生サービス、オブジェクト:本来の元のビジネス機能の一般的なサービスにサービス、ビジネス・ロジックの迅速な再利用は、コアの問題を解決するには、このステップは、[再利用]であります

サービス指向エンタープライズアーキテクチャへのエンタープライズアーキテクチャの本来の機能、さらに外部サービスの能力を強化するため、本社機能は、再利用可能な、構成可能なサービスに抽象化ビジネスの観点に立っ、;:3事業のサービス「技術的な観点からのシステムコール、システム機能の再利用の問題を解決するための最初の2つのステップがあります。」第三のステップは、パッケージは、サービス事業にサービス・ドライブ・ユニットに基づいています。このステップは、コアの課題を解決することである[効率的】

マイクロサービスアーキテクチャ(軽量サービス管理プログラム)

マイクロサービスはマイクロサービスアーキテクチャ上の焦点は、元の単一の業務システムの「完全組立およびサービスへのビジネス・ニーズ」は、複数の独立した開発、設計、操作に分けることができることを強調し、昇華を行うにはSOAであります小さなアプリケーション。相互作用と統合の完了との間のサービスを通じてこれらの小さなアプリケーション。

マイクロサービスは、実際には軽量なサービス管理ソリューションです。

マイクロ・サービス・アーキテクチャは、アーキテクチャパターンである、彼はユーザーのための究極の価値を提供し、お互いを補完し、サービス間の協調、小さな一連のサービスに単一のアプリケーションを提唱しました。その別のプロセスにおいて、各サービスの実行は、サービス間およびサービスは、それぞれ他の(HTTPプロトコルに基づく通常繧API)と通信するための軽量な通信メカニズムを使用します。各ビルドに固有のビジネスの周りのサービス、および独立して運用環境に展開することができます。また、我々は彼らの建物のための適切な言語ツールを選択し、特定のサービスのための統一、集中型のサービス管理メカニズムは、ビジネスコンテキストに基づくべき避けるべきです。

アジャイル開発、継続的デリバリー、DevOpsチームの理論と実践の開発、および成熟ドッカーとアプリケーションやサービスの展開に基づいて、他の軽量コンテナでは、マイクロ・サービス・アーキテクチャは、進化のアプリケーションアーキテクチャの将来の方向になってきて、人気となりました。分割サービスの原子だけでなく、独立したマイクロパッケージサービス、導入とアップグレードすることで、小さなチームは、運用コストが大幅に低減され、アプリケーション配信サイクルが短くなり、アジャイル提供します。

マイクロサービスアーキテクチャの特長:
コンポーネントサービスの1インプリメンテーションは、
もはやサービスの開発上の他のサービスへの影響の展開を調整する必要があります。
2.ビジネス・サービスによって除算する機能と開発チーム
の開発者は、サービスのAPIを提供するための技術の開発を自由に選択
の中央に3を
各マイクロサービスは、独自のデータベース永続サービスのデータを持っている
各マイクロサービスは、独自のデータベースにのみアクセスすることができますしかし、他のサービスのデータベースにアクセスすることはできません
特定のビジネスシナリオの下で、我々は、単一のトランザクションで複数のデータベースを更新する必要があります。この状況は、直接他のマイクロサービスのデータベースにアクセスすることはできませんが、ミクロのサービスのために運営しています。
さらにマイクロサービスとの間の結合を低減分散化データは、異なるサービスは異なる技術データベース(SQL、NoSQLの、等)を使用することができます。複雑なビジネス・シナリオでは、サービスは、クライアントまたは中間層(ゲートウェイ)処理は通常、マイクロ複数を含む場合。
4.インフラの自動化(DevOpsチーム、自動展開)
単一のサービスの分割になるために適用するには、アプリケーションドッカー技術は、任意のサーバとデータモデルに依存しない、フルスタックのアプリケーションで自動化された方法によって独立して展開することができ、各サービス独自のプロセスで実行は、接触軽量な通信メカニズムによって、リソースがしばしばHTTP APIに基づいており、これらのサービスは、一元管理を実現するために、運用能力開発に基づいています。

SOAに比べて、より軽量なマイクロサービス、技術に代わって:SpringCloudのダボ
レジストリはエンタープライズ・サービス・バスのレジストリの代表に軽量な代替がある飼育係を持っている、ユーレカ

公開された21元の記事 ウォンの賞賛6 ビュー30000 +

おすすめ

転載: blog.csdn.net/soulonlyhlh/article/details/104129508
RPC