AMQPは現在PHPにもあります

タイプ紹介
AMQPプロトコルは、ロシア語のAMQPの記事RabbitMQ詳しく説明されています。AMQPの 紹介 AMQPは使用方法であり、繰り返したくありません。

AMQPは、キューサーバーで使用されます: ZeroMQActiveMQRabbitMQ

他のフリーソフトウェアに対するRabbitMQの利点:
-プロトコルがより完全に提示され、
-クラスターをサポート、
-マルチスレッドサーバーとして実装され、高性能

WEB開発でAMQPが広く使用されているのは、その使用に必要なスキル(実践)の不足と低いカスタマーサポートという2つの理由に制約されています。 基本的に、c、java、python、c#にクライアントがあります。 WEB開発におけるPHPの人気は、AMQPクライアントを見るのが残念です。

現在、次のPHPクライアントが開発されています。
-php-amqplibプロトコルはPHPで完全に実装されています。 個人的には、開始できませんでした。AMQPブローカーとの接続クラスでハングします。 誰もがそれを起動できる場合、あなたの経験を共有していただければ幸いです。

-php-amqp - RabbitMQ-Cクライアントライブラリを使用した拡張。 メッセージを公開する機能のみが実装されています。

-php -rabbit -RabbitMQ-Cクライアントライブラリhg.rabbitmq.com/rabbitmq-cを使用した拡張機能。 プロトコルは実践のために十分に使用されています。 私が開発してサポートしているので、建設的な対話の準備ができています。

PHP-RabbitをRabbitMQコミュニティに紹介した後、彼らはロシア語を話すRabbitMQコミュニティに、RabbitMQの開発者の1人であるDmitry Samovskyを含む独自のロシア語を話すディスカッショングループを作成することを提案しました。

グループ アドレスhttp://groups.google.com/group/rabbitmq_rus Wellcomeへの参加をご希望の方!!!
使用例:
// queue declare queue.php
$rabbit = new Rabbit(); // default connection localhost:5672
//user=guest psw=guets vhost="/"
$rabbit->queue("q_test"); // declare queue "q_test"


// queue declare queue2.php
$rabbit = new Rabbit(); // connection
$rabbit->queue("q_test2"); // declare queue "q_test2"

// exchange declare exchange.php
$rabbit = new Rabbit(); // connection
$rabbit->exchange('e_test', "topic"); // topic exchange declare
$rabbit->bind('e_test','q_test','key_test.t1'); // bind exchange to queue "q_test" by key="key_test"
$rabbit->bind('e_test','q_test2','key_test.t2'); // bind exchange to queue "q_test2" by key="key_test2"

// publishing to queue1 publish.php
$msg = array(
'message1','message2','message3','message4'
);
$rabbit = new Rabbit(); // connection
foreach ( $msg as $item ) // // publishing to queue1
$rabbit->publish('e_test','key_test.t1',$item);

// publishing to queue2
foreach ( $msg as $item ) // // publishing to queue2
$rabbit->publish('e_test','key_test.t2',$item."01");

// reading all messages from queue: consume.php
$rabbit = new Rabbit(); // connection
$count=$rabbit->queue("q_test");
$res =$rabbit->consume("q_test", $count)
var_dump($res);
// $res is array of messages;

// reading some messages from queue: queueItems.php
$rabbit = new Rabbit(); // connection
$count=$rabbit->queue("q_test2");

for ( $i=0; $i<$count;$i++ ){
$res = $rabbit->queueItem("q_test2" );
print_r( $res );
}

タイプエピローグ
次の投稿では、拡張機能の実用化と機能について説明します。

Source: https://habr.com/ru/post/J70757/


All Articles