並列 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><?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>
ログイン後にコピー
Yar はドキュメントとインターフェイスをバインドします。上の例では、このインターフェイス アドレスに対して単純な GET リクエストを行うと、次の情報ページが表示されます:
http://www.bkjia.com/PHPjc/445651.html
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック
Gmailメールのログイン入り口はどこですか?
7310
9


Java チュートリアル
1624
14


CakePHP チュートリアル
1345
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1207
29



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

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

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

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