rabbitMq認識及應用(php)

2021-09-26 11:51:20 字數 2560 閱讀 7174

一種程式對程式的通訊方法

實現了高階訊息佇列協議(amqp)的開源訊息**軟體(亦稱面向訊息的中介軟體)

erlang編寫

特性:①可伸縮性:集群服務

② 訊息持久化:從記憶體持久化訊息到硬碟,再從硬碟載入到記憶體

amqp:典型的「生產/消費」訊息模型

根據phpinfo()檢視版本等

將php_amqp.dll檔案放到 php 目錄下的ext資料夾下面

然後,再將 rabbitmq.4.dll (有些是rabbitmq.1.dll )檔案放到 php 根目錄下

然後,在 php.ini 最後加extension=php_amqp.dll

重啟apache

安裝好之後,要配置一下環境變數:此電腦–>滑鼠右鍵「屬性」–>高階系統設定–>環境變數–>「新建」系統環境變數

最後 windows鍵+r鍵,輸入 cmd,再輸入erl,看到版本號,就說明erlang安裝成功了

雙擊安裝,再安裝rabbitmq-plugins。開啟命令列,cd切換到rabbitmq 的 sbin目錄。

我的目錄是:d:\program files\rabbitmq server\rabbitmq_server-3.7.17\sbin ,然後在後面輸入rabbitmq-plugins enable rabbitmq_management命令進行安裝。

開啟**:http://localhost:15672 用上面的賬號和密碼登陸進去

php-amqplib 這個封裝好的類庫,新增composer.json檔案

}

send.php(生產)

<?php 

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

use phpamqplib\connection\amqpstreamconnection;

use phpamqplib\message\amqpmessage;

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

$channel = $connection->channel();

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

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

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

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

$channel->close();

$connection->close();

recv.php (消費)

<?php 

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

use phpamqplib\connection\amqpstreamconnection;

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

$channel = $connection->channel();

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

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

$callback = function($msg) ;

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

while(count($channel->callbacks))

$channel->close();

$connection->close();

RabbitMQ的初步認識

rabbitmq內部構建 1 通道,應用程式連線是與通道連線,減少與rabbitmq的tcp頻繁斷開連線產生的開銷 2 交換機,實現將生產者的訊息分發到指定的佇列中 型別說明 direct 直連 路由鍵需要和佇列名稱完全匹配 topic 主題 路由鍵可以和佇列名稱通過萬用字元匹配 單個單詞和 多個單...

rabbitmq 簡單應用

1.啟動 rabbitmq server 2.佇列重置 清空佇列 使用者等 rabbitmqctl stop 4.列舉所有使用者 rabbitmqctl list users 5.列舉所有佇列 rabbitmqctl list queues 6.新增使用者 rabbitmqctl add user ...

Zookeeper 初步認識及基本應用

初步認識zookeeper zookeeper是乙個開源的分布式協調服務,是由雅虎建立的,基於google chubby。基於google chubby的開源實現。zookeeper的設計目的是將那些複雜且容易出錯的分布式一致性服務封裝起來。zookeeper 是什麼 分布式資料一致性解決方案 zo...