訊息佇列 RabbitMQ PHP實現

2022-01-21 20:25:59 字數 1945 閱讀 6937

文件提綱:

2)【環境準備】:

安裝php的rabbitmq php擴充套件安裝,依賴的erlang環境

參考文件: 

3)【類的依賴載入】:建議使用 composer實現,

composer入門

4)【教程】:

5)測試指令碼:

--使用官方的demo:

開乙個訂閱者視窗

$ cd php-amqplib/demo

$ php amqp_consumer.php

開乙個發布者視窗

$ cd php-amqplib/demo

$ php amqp_publisher.php some text to publish

--使用第三方指令碼 

1

//引用所需檔案

2require_once __dir__ . '/vendor/autoload.php';

3use

phpamqplib\connection\amqpstreamconnection;

4use

phpamqplib\message\amqpmessage; 5//

建立乙個連線通道,宣告乙個可以傳送訊息的佇列hello

6$connection = new amqpstreamconnection('localhost', 5672, 'guest', 'guest');

7$channel = $connection->channel();

8$channel->queue_declare('hello', false, false, false, false

); 910

//定義乙個訊息,訊息內容為hello world!

11$msg = new amqpmessage('hello world!');

12$channel->basic_publish($msg, '', 'hello');

1314

//傳送完成後列印訊息告訴發布訊息的人:傳送成功

15echo " [x] sent 'hello world!'\n";

16//

關閉連線

17$channel->close();

18$connection->close();

view code

1

require_once __dir__ . '/vendor/autoload.php';

2use

phpamqplib\connection\amqpstreamconnection;

3$connection = new amqpstreamconnection('localhost', 5672, 'guest', 'guest');

4$channel = $connection->channel(); 56

$channel->queue_declare('hello', false, false, false, false

); 78

echo ' [*] waiting for messages. to exit press ctrl+c', "\n";

9$callback = function($msg

) ;

1213

//在接收訊息的時候呼叫$callback函式

14$channel->basic_consume('hello', '', false, true, false, false, $callback

);

1516

while(count($channel->callbacks))

訊息佇列 RabbitMq(PHP)

首先進行安裝 windows下的php rabbit mq安裝 配置 composer入門 將composer.json檔案放在你的專案中 composer.json composer.json檔案存放在rabbit 我的專案名稱 目錄中 下面是乙個簡單的 hello world 測試程式 如圖所示...

訊息佇列 訊息佇列

輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...

訊息佇列 訊息佇列 kafka

kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...