現在、完全なオープンソースの rpc アーキテクチャが数多く存在します。プログラムがどのように効率的かつ安定して動作するかを理解するには、rpc の構築プロセスを理解する必要があります。自己構築プロセスは大きく 2 つの部分に分けられます。 、コミュニケーション部分と調整部分です。
通信部分にはサーバーとクライアントが含まれます。サーバーは合意されたポートをリッスンして接続を待ち、クライアントはサーバーとのリンクを確立します。効率的に情報を送信するには、データを送信前にシリアル化し、受信後にデシリアル化する必要があります。
上記の 2 つの要件を踏まえて、サーバーとクライアントの機能をいくつか要約してください。
サーバー機能には、ポートのリッスン、接続要求への応答、データ パケットの受信、データ パケットの解析、応答メソッドの呼び出し、要求処理結果データ パケットの組み立て、結果データ パケットの送信が含まれます。クライアント機能には次が含まれます。確立 接続、データの組み立て、データ パケットの送信、処理結果データ パケットの受信、データ パケットの解析、および結果の返し。
これで、単純な rpc 関数が完成しました。
製品レベルの製品では、コアとなる通信機能だけでは十分ではなく、それらの機能を安定かつ効率的に動作させるための調整機能や管理機能も必要になります。
リンクの確立を高速化するには接続プールが必要です。クラスタにデプロイされたコンシューマには負荷分散が必要です。クラスタ内のノードにはルーティング管理が必要です。サービスのステータスを常に維持し、エラーのあるノードを排除する必要があります。再起動によって発生するメッセージを回避するには、正常なシャットダウンが必要です。失われた、過負荷保護が必要、タイムアウト要求の破棄など。
さて、上記をまとめるために、コンシューマーとプロデューサーの機能要件をまとめてみましょう。
コンシューマは、接続管理、ロード バランシング、リクエスト ルーティング、タイムアウト処理、ヘルス チェックを行うことができ、プロデューサは、スレッド プール、タイムアウト破棄、正常なシャットダウン、過負荷保護を行うことができます。
上記は自作rpcに必要な機能をまとめたものですが、不足があればご自由に追加してください。
関連する推奨事項: 「Java ビデオ チュートリアル 」
以上が自作 RPC を構築するにはどのような機能が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。