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

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

WBOY
WBOYオリジナル
2016-07-20 10:58:50929ブラウズ

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><?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">"foo"</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>->handle();  </span></span></li>
<li class="alt"><span>?>  </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 までご連絡ください。