訊息佇列 RabbitMq(PHP)

2021-07-31 22:08:15 字數 1989 閱讀 5125

首先進行安裝:

windows下的php rabbit mq安裝、配置

composer入門

將composer.json檔案放在你的專案中

composer.json }

(composer.json檔案存放在rabbit(我的專案名稱)目錄中)

下面是乙個簡單的「hello world」測試程式

如圖所示:「p」是訊息發布者,「c」是訊息的消費者,中間紅色的是我們的佇列,這是乙個訊息的快取區

首先構建乙個傳送訊息的檔案send.php,即「p」,發布訊息

//引用所需檔案  

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

use phpamqplib\connection\amqpstreamconnection;

use phpamqplib\message\amqpmessage;

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

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

$channel = $connection->channel();

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

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

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

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

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

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

//關閉連線

$channel->close();

$connection->close();

接著我們需要接受訊息,建立乙個檔案:reveive.php

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

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

while(count($channel->callbacks))

分別執行send.php和receive.php

訊息佇列 RabbitMQ PHP實現

文件提綱 2 環境準備 安裝php的rabbitmq php擴充套件安裝,依賴的erlang環境 參考文件 3 類的依賴載入 建議使用 composer實現,composer入門 4 教程 5 測試指令碼 使用官方的demo 開乙個訂閱者視窗 cd php amqplib demo php amqp...

訊息佇列 訊息佇列

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

訊息佇列 訊息佇列 kafka

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