通常、多言語とマルチシステムの統合は大きな問題ですが、一般的にはWebServiceを使用してそのような統合の問題に対処しますが、どんなアプリケーションでも関係ありません。 RPCスタイルやRESTfulスタイルなどのスタイル付きWebサービスには、固有の複雑さがあります。それとは対照的に、Gearmanは同様の効果を達成することができ、そしてより使いやすいです。 Gearman要求の処理には、Client - > Job - > Workerという3つの役割があります。クライアント:リクエストの発信元。C、 PHP
、Perl、MySQL UDFなどです。 Job:要求のディスパッチャ。クライアントから適切な作業への要求の転送を調整する責任があります。ワーカー:リクエストのハンドラ。C、PHP、Perlなどです。 Client、Workerは同じ言語の使用を制限しないので、それは多言語とマルチシステム間の統合を助長します。より多くのワーカーを追加しても、アプリケーション用の分散負荷分散アーキテクチャを簡単に実装できます。例をインストールして実行する方法を見てみましょう限られた条件の下で、私たちは3つの役割Client、Job、およびWorkerをサーバー上で実行します:install libevent:
wget http://www.monkey.org/〜provos /libevent-1.4.12-stable.tar.gztar libevent-1.4.12-stable.tar.gzcd libevent-1.4.12-stable /./configure --prefix = /us&make; install install /Sbin /ldconfigcd ../
Gearmanサーバーとライブラリをインストールします。
wget http://launchpad.net/gearmand/trunk/0.9/+download /gearmand- 0.9.tar.gztar zxvf gearmand-0.9.tar.gzcd gearmand-0.9./configuremakemake install /sbin /ldconfigcd ../
Gearman PHP拡張モジュールをインストールする:wget http://pecl.php.net/get /gearman-0.5.0.tgztar zxvf gearman-0.5.0.tgzcd gearman-0.5.0 /usr /local /webserver /php /bin /phpize /configure --with-php-config = /usr /local /webserver /php /bin /php-config --with-gearmanmakemake installcd ../php.ini設定ファイルを編集して適切なモジュールをロードし、有効にします。extension =" gearman.so"ジョブを開始します。現在のユーザーがrootの場合はgearmand -dそれからこれを行う必要があります。geomand -d -u rootはデフォルトでポート4730を使用します。これは以下で使用されます。注:gearandコマンドへのパスが見つからない場合は、whereis gearmandで確認することを忘れないでください。
psコマンドを使用して、起動が成功したかどうかを確認できます。 Grep gearman
次のようにWorker:worker.phpファイルを作成します。<?php $ worker = new GearmanWorker(); $ worker-> addServer( '127.0.0.1'、4730); $ワーカー> addFunction( 'reverse'、 'my_reverse_function'); while($ worker-> work());関数my_reverse_function($ job){return strrev($ job-> workload());}?>仕事を実行するための背景を設定します。#php /var/www/html/worker.php&
Client:client.phpファイルを次のように作成します。<?php $ client = new GearmanClient(); $ client - > addServer( '127.0.0.1'、4730); echo $ client-> do( 'reverse'、 'Hello World!')、" \\ n";?>クライアントを実行:#php /var /Www /html /client.phpの出力:!dlro l olH
まず、PHPのGearman Extensionには、プログラムがJob ServerにジョブをスケジュールできるようにするGearmanClientというクラスがあります。 。
そしてaddServerメソッドは、どのJob Serverに通知するかを示します。つまり、Job Serverが複数ある場合は、addServerを使用してそれらを追加できます。
次に、過去を渡すためにGearmanClientのdoBackgroundメソッドを使用して、どのワーカーとそのワーカーが必要とするデータを呼び出します。 doBackgroundメソッドは、その名のとおり、バックグラウンドで実行され、クライアントは要件を破棄した後も他のプログラムの処理を続行できます。
============
$ client-> doBackground( 'sendEmail'、serialize($ emailData)); echo"電子メールの送信が完了しました。\\ n"; < Br> ============
doBackgroundメソッドの最初のパラメータは、実行する機能をJob Serverに指示することです。この機能はWorkerによって提供されます。識別のための実際の関数名ではありません。 2番目のパラメータはワーカーに渡されるデータなので、文字列でなければならないので、配列を転送する場合は、データをシリアル化するためにPHPのserialize関数を使用します。
便宜上、WorkerとClientはPHPを使用しますが、これはデモには影響しません実際には、Gearmanを介してWorkersを異なる言語で統合することができます。クライアントたぶん、あなたはまだ前述の負荷分散機能を理解したいでしょう:非常に単純で、ただ複数のワーカーを追加する、あなたはworker.phpの方法に従っていくつかの似たようなファイルを書くことができます。プレゼンテーションを確認してください。それから、これらのWorkerファイルを順番に起動し、client.phpを使用して要求すると、JobがClient要求を別のWorkerに転送することがわかります。
デーモンを使ってgearandを起動する-L 192.168.0.1 -p 4730 -u root -d
コマンドラインツールPHPのようなものをインストールするのは大変です。コマンドラインツールを使用するだけで、Gearmanの機能を体験することもできます。Start Worker:gearman -w -f wc - wc -l& Run Client:gearman -f wc< /etc /passwd
ソフトは紹介割り込むプロセスが独立したハード割り込みハンドラから遅延させることができるので、このプロセスがオープン中断することなく実行することができ、このプロセスはソフト割り込みです。この目に見える
Monoはクロスプラットフォームのオープンソース.NET開発フレームワークです。 SUSE Linuxオペレーティングシステムに基づいてNovellによって開発されたLinuxシステムのサポート。公式
の下にコマンドが見つかりません。 コマンドが見つかりません コマンド行に export PATH = /usr /bin:/usr /sbin:/bin:/sbinと入力してください。 :/usr /
でchroot SFTPを設定する方法いくつかのシナリオでは、システム管理者がほんの少数のユーザにだけファイルをsshではなくLinuxボックスに転送することを許可するようにします。 SFTPをchr
Win7のシステムマウスの右クリックメニューポップアップソリューションソリューショングラフィックチュートリアル
MicrosoftはWPの新しいYouTubeアプリを放棄する
Win10 RTM簡体字中国語版のISOイメージの公式ISOイメージのダウンロードDaquanの
Windows XPがリモートデスクトップの二重管理者のログインスキルを設定する
Win10のシステムはどのように対処するための "リソースマネージャが動作を停止しました"のヒントが表示され続けますか?
WeChatスイープがカメラデータソリューションおよびグラフィックチュートリアル