RPC フレームワークとは何ですか?
RPC を一言で表すと: リモート プロシージャ コール (リモート プロシージャ コール)
それでは、リモート コールとは何でしょうか。
通常、php では、localAdd(10, 20) のような関数メソッドなどのメソッドを呼び出します。localAdd メソッドの具体的な実装は、ユーザーによって定義されるか、 PHP ライブラリの関数、つまり、localAdd メソッドのコードがローカルに実装されている場合、これはローカル呼び出しです。
リモート呼び出しとは、呼び出されるメソッドの特定の実装が、実行中のプログラムに対してローカルではなく、他のリモートの場所にあることを意味します。
リモート呼び出しの原則
たとえば、A (クライアント) は、B (サーバー) が提供する RemoteAdd メソッドを呼び出します。
まず、接続を確立します。 A と B 間の TCP 接続;
次に、A は呼び出す必要があるメソッド名 (ここではremoteAdd) とメソッド パラメータ (10、20) をバイト ストリームにシリアル化し、送信します。
B は A が送信したものを受け入れます 次に、バイト ストリームが逆シリアル化されてターゲット メソッド名とメソッド パラメータが取得され、対応するメソッド呼び出し (おそらく localAdd) が実行され、結果 30 が返されます。リモート呼び出しの結果と出力 30。
RPC フレームワークは、先ほど述べた詳細をカプセル化し、ユーザーにシンプルでフレンドリーな API の使用を提供します。
リモート呼び出しの利点分離: サーバーがメソッドを変更する必要がある場合、クライアントはそれをまったく認識せず、変更を加える必要がありません。メソッド 部門や会社を越えてコラボレーションする場合によく使用され、メソッドの提供者は通常「サービス公開」と呼ばれます。
RPC とソケットの違いは何ですか?上記の簡単な説明から、RPC と Socket は似ていることがわかります。これらはすべてリモート メソッドを呼び出し、すべてクライアント/サーバー モードです。以前にも記事を書きました: ソケットについて詳しく話しましょう。それらの違いは何ですか?
RPC (リモート プロシージャ コール) はクライアント/サーバーを使用しますこのモードでは、2 つのプロセスが相互に通信できるようになります。ソケットは RPC でよく使用される通信方式の 1 つであり、RPC はソケットに基づいて実装されているため、ソケットよりも多くのネットワーク リソースとシステム リソースが必要になります。 RPC には、Socket に加えて、http、オペレーティング システム独自のパイプライン、およびリモート プログラムへの呼び出しを実装するその他のテクノロジなど、他の通信方法もあります。 Microsoft の Windows システムでは、RPC は通信に名前付きパイプを使用します。
RPC と REST の違いは何ですか?RPC を理解すると、RPC がクライアント/サーバー モードであり、リモート メソッドを呼び出すことがわかります。REST も、私たちがよく知っている API 呼び出しプロトコル メソッドのセットです。また、クライアントに基づいています。 /server mode. はリモートメソッドを呼び出しますが、両者の違いは何でしょうか?
REST API と RPC は両方とも、関数をサーバー側のインターフェイスにカプセル化し、クライアント呼び出し用に公開します。ただし、REST API は HTTP プロトコルに基づいています。REST は http プロトコルで POST/ を渡すことに専念しています。 GET/PUT/DELETE などのメソッドと人間が判読できる URL を使用して http リクエストを提供します。 RPC は HTTP プロトコルに基づく必要はありません
したがって、2 つのバックエンド言語が相互に呼び出しを行う場合、RPC を使用することでより良いパフォーマンスを実現できます (HTTP ヘッダーなどの一連のものを排除します)。設定はもっと簡単になるはずです。フロントエンドが AJAX 経由でバックエンドを呼び出す場合は、REST API を使用することをお勧めします (とにかく HTTP のハードルを回避できないため)。
php で人気のある rpc フレームワークは何ですか?PHP は世界で最高の言語ですが、PHP で人気のある RPC フレームワークは何ですか?
最初にそれらをリストしてみましょう:
phprpc、yar、thrift、gRPC、swoole、hprose時間とエネルギーは限られているため、それらを 1 つずつ学習して使用することは不可能です。世界で最も一般的に使用されているものをいくつか選択して使用してください。 RPC の原理は同じなので、どちらもクライアント/サーバー モードですが、それぞれのフレームワークの使用方法が異なります。
以上がphp rpc フレームワークとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。