ホームページ バックエンド開発 PHPチュートリアル 並列 RPC フレームワーク_PHP チュートリアル

並列 RPC フレームワーク_PHP チュートリアル

Jul 20, 2016 am 10:58 AM
framework rpc フレーム

Yar (さらに別の RPC フレームワーク。なぜいつも Ya で始まるのかリーダーに尋ねられました。笑、名前は簡単に手に入るからです) は、実際的な問題を解決するために 3 か月以上前に開発した PHP 拡張機能です。 RPC フレームワークは、既存の RPC フレームワーク (xml-rpc、soap) とは異なり、複数のパッケージング プロトコル (msgpack、json、php) をサポートする軽量のフレームワークであり、最も重要な特徴は並列化可能であることです。次のシナリオを考えてみましょう:

従来の Web アプリケーションでは、当然のことながら、1 つのプロセス、1 つのリクエストが処理されます。ただし、リクエストが処理されるときには、複数のデータ ソースが関与し、それらの間にはある程度の独立性があります。

ビジネスの急速な成長と開発者の離職に伴い、アプリケーションは常にコードの量を増やすだけで、減算することはできません。システムはより複雑になり、たった 1 つの動作が全体の状況に影響を及ぼします。そして、新しいメンテナが元のシステムを完全に習得するには時間があまりありません。たとえ時間はたくさんあるとしても、できるだけ多くのことを習得したい場合です。以前と同様に、メンテナの考え方を組み合わせるのは簡単な作業ではありません...

そして、時間の経過とともに、このシステムはますます保守不能になります... 大規模なアプリケーションがこの悪循環に入ると、待っているのは再構築だけです

では、このシステムを分離できますか?

データ、ミドルウェア、ビジネス、ロジックなど、さまざまなレイヤーを含む多くの分離をすでに行っていますが、Web アプリケーションに関しては、他にどのように分割できるでしょうか。すでにMVCを行っている... これを踏まえると、Yarはあなたが遭遇したこれら2つの問題を解決できるかもしれません...

Yarは非常に軽量なRPCフレームワークであり、私はYarを実装しています 当時、私たちは究極の軽量性を追求し、サーバー側の場合:

<ol class="dp-c">
<li class="alt"><span><span>&lt;?php  </span></span></li><li><span class="keyword">class</span><span> API {  </span></li><li class="alt"><span>    </span><span class="comment">/** </span> </li><li><span><span class="comment">* the doc info will be generated automatically into service info page. </span> </span></li><li class="alt"><span><span class="comment">* @params </span> </span></li><li><span><span class="comment">* @return </span> </span></li><li class="alt"><span><span class="comment">*/</span><span> </span></span></li><li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">function</span><span> api(</span><span class="vars">$parameter</span><span>, </span><span class="vars">$option</span><span> = </span><span class="string">&quot;foo&quot;</span><span>) {  </span></li><li class="alt"><span>    }  </span></li><li><span>   </span></li><li class="alt"><span>    </span><span class="keyword">protected</span><span> </span><span class="keyword">function</span><span> client_can_not_see() {  </span></li><li><span>    }  </span></li><li class="alt"><span>}  </span></li><li><span>   </span></li><li class="alt"><span class="vars">$service</span><span> = </span><span class="keyword">new</span><span> Yar_Server(</span><span class="keyword">new</span><span> API());  </span></li><li><span class="vars">$service</span><span>-&gt;handle();  </span></span></li>
<li class="alt"><span>?&gt;  </span></li>
</ol>
ログイン後にコピー
Soap に非常に似ていますね? はい、このようにして、API クラスが外部の世界にサービスを提供できます...

Yar はドキュメントとインターフェイスをバインドします。上の例では、このインターフェイス アドレスに対して単純な GET リクエストを行うと、次の情報ページが表示されます:

http://www.bkjia.com/PHPjc/445651.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/445651.html技術記事 Yar (もう一つの RPC フレームワーク。なぜいつも Ya で始まるのかリーダーに尋ねられました。笑、名前は覚えやすいからです) は、実際的な問題を解決するために 3 か月以上前に私が開発した PHP 拡張機能です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java フレームワークの商用サポートの費用対効果を評価する方法 Java フレームワークの商用サポートの費用対効果を評価する方法 Jun 05, 2024 pm 05:25 PM

Java フレームワークの商用サポートの費用対効果を評価する方法

PHP フレームワークの軽量オプションはアプリケーションのパフォーマンスにどのような影響を与えますか? PHP フレームワークの軽量オプションはアプリケーションのパフォーマンスにどのような影響を与えますか? Jun 06, 2024 am 10:53 AM

PHP フレームワークの軽量オプションはアプリケーションのパフォーマンスにどのような影響を与えますか?

Golang フレームワークのドキュメントのベスト プラクティス Golang フレームワークのドキュメントのベスト プラクティス Jun 04, 2024 pm 05:00 PM

Golang フレームワークのドキュメントのベスト プラクティス

さまざまなアプリケーションシナリオに最適な Golang フレームワークを選択する方法 さまざまなアプリケーションシナリオに最適な Golang フレームワークを選択する方法 Jun 05, 2024 pm 04:05 PM

さまざまなアプリケーションシナリオに最適な Golang フレームワークを選択する方法

PHP フレームワークの学習曲線は他の言語フレームワークと比較してどうですか? PHP フレームワークの学習曲線は他の言語フレームワークと比較してどうですか? Jun 06, 2024 pm 12:41 PM

PHP フレームワークの学習曲線は他の言語フレームワークと比較してどうですか?

Java フレームワークのパフォーマンス比較 Java フレームワークのパフォーマンス比較 Jun 04, 2024 pm 03:56 PM

Java フレームワークのパフォーマンス比較

golang フレームワーク開発の実践的な詳細な説明: 質疑応答 golang フレームワーク開発の実践的な詳細な説明: 質疑応答 Jun 06, 2024 am 10:57 AM

golang フレームワーク開発の実践的な詳細な説明: 質疑応答

Golang フレームワークのパフォーマンス比較: 賢明な選択を行うための指標 Golang フレームワークのパフォーマンス比較: 賢明な選択を行うための指標 Jun 05, 2024 pm 10:02 PM

Golang フレームワークのパフォーマンス比較: 賢明な選択を行うための指標

See all articles