Mac安裝rabbitMQ厕宗、php擴(kuò)展及運(yùn)行demo

Mac安裝RabbitMQ直接用

brew install rabbitmq

安裝php擴(kuò)展麻煩在于需要很多依賴
PHP 使用 AMQP 協(xié)議來連接 Rabbitmq徒恋, AMQP 協(xié)議即 “Advanced Message Queuing Protocol ”辕近,高級(jí)消息隊(duì)列協(xié)議封孙。

使 PHP 支持 AMQP 協(xié)議迹冤,需要安裝:

  • rabbitmq 的客戶端 C 類庫 rabbitmq-c
  • PHP 官方提供的 AMQP 擴(kuò)展 https://pecl.php.net/package/amqp phper必備網(wǎng)址 我在此選擇的是 amqp-1.9.3.tgz版本

我都是編譯安裝的方法

  1. 首先安裝rabbitmq-c
wget -c https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz

tar zxvf rabbitmq-c-0.8.0.tar.gz

cd rabbitmq-c-0.8.0

./configure --prefix=/usr/local/rabbitmq-c-0.8.0

make && make install
  1. 其次安裝amqp
wget -c http://pecl.php.net/get/amqp-1.9.3.tgz

tar zxf amqp-1.9.3.tgz

cd amqp-1.9.3

#我電腦環(huán)境有多php環(huán)境所以指定版本 下面的config如是
/usr/local/Cellar/php@7.2/7.2.26/bin/phpize

./configure  --with-php-config=/usr/local/Cellar/php@7.2/7.2.26/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.8.0

make && make install

問題來了
我在編譯的時(shí)候反復(fù)出現(xiàn)如下錯(cuò)誤,開始以為是我弄丟了文件虎忌,重復(fù)刪除泡徙、解壓。

image.png

問題原因就是找不到 amqp_ssl_socket.h 文件
解決辦法也很簡單膜蠢,找到這個(gè)文件在你電腦的位置锋勺,復(fù)制一份到當(dāng)前目錄就OK蚀瘸,然后繼續(xù)重新make && make install 就可以
image.png

然后,將你的amqp.so放到你的php.ini里 extension=amqp.so


image.png

重啟你的php 開始coding吧

在你的環(huán)境下創(chuàng)建一個(gè)consume.php

<?php

//聲明連接參數(shù)
$config = array(
    'host' => '127.0.0.1',
    'vhost' => '/',
    'port' => 5672,
    'login' => 'guest',
    'password' => 'guest'
);
//連接broker
$cnn = new AMQPConnection($config);
if (!$cnn->connect()) {
    echo "Cannot connect to the broker";
    exit();
}
//在連接內(nèi)創(chuàng)建一個(gè)通道
$ch = new AMQPChannel($cnn);
//創(chuàng)建一個(gè)交換機(jī)
$ex = new AMQPExchange($ch);
//聲明路由鍵
$routingKey = 'key_1';
//聲明交換機(jī)名稱
$exchangeName = 'exchange_1';
//設(shè)置交換機(jī)名稱
$ex->setName($exchangeName);
//設(shè)置交換機(jī)類型
//AMQP_EX_TYPE_DIRECT:直連交換機(jī)
//AMQP_EX_TYPE_FANOUT:扇形交換機(jī)
//AMQP_EX_TYPE_HEADERS:頭交換機(jī)
//AMQP_EX_TYPE_TOPIC:主題交換機(jī)
$ex->setType(AMQP_EX_TYPE_DIRECT);
//設(shè)置交換機(jī)持久
$ex->setFlags(AMQP_DURABLE);
//聲明交換機(jī)
$ex->declareExchange();
//創(chuàng)建一個(gè)消息隊(duì)列
$q = new AMQPQueue($ch);
//設(shè)置隊(duì)列名稱
$q->setName('queue_1');
//設(shè)置隊(duì)列持久
$q->setFlags(AMQP_DURABLE);
//聲明消息隊(duì)列
$q->declareQueue();
//交換機(jī)和隊(duì)列通過$routingKey進(jìn)行綁定
$q->bind($ex->getName(), $routingKey);
//接收消息并進(jìn)行處理的回調(diào)方法
function receive($envelope, $queue) {
    //休眠兩秒庶橱,
    sleep(2);
    //echo消息內(nèi)容
    echo $envelope->getBody()."\n";
    //顯式確認(rèn)贮勃,隊(duì)列收到消費(fèi)者顯式確認(rèn)后,會(huì)刪除該消息
    $queue->ack($envelope->getDeliveryTag());
}
//設(shè)置消息隊(duì)列消費(fèi)者回調(diào)方法苏章,并進(jìn)行阻塞
$q->consume("receive");
//$q->consume("receive", AMQP_AUTOACK);//隱式確認(rèn),不推薦

然后寂嘉,我在終端開啟三個(gè)進(jìn)程
可以在圖形化中看見有三個(gè)消費(fèi)者在等待


image.png

perfect

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市枫绅,隨后出現(xiàn)的幾起案子泉孩,更是在濱河造成了極大的恐慌,老刑警劉巖并淋,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寓搬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡县耽,警方通過查閱死者的電腦和手機(jī)句喷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兔毙,“玉大人唾琼,你說我怎么就攤上這事∨彀” “怎么了锡溯?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哑姚。 經(jīng)常有香客問我祭饭,道長,這世上最難降的妖魔是什么叙量? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任甜癞,我火速辦了婚禮,結(jié)果婚禮上宛乃,老公的妹妹穿的比我還像新娘。我一直安慰自己蒸辆,他們只是感情好征炼,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躬贡,像睡著了一般谆奥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拂玻,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天酸些,我揣著相機(jī)與錄音宰译,去河邊找鬼。 笑死魄懂,一個(gè)胖子當(dāng)著我的面吹牛沿侈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播市栗,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缀拭,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了填帽?” 一聲冷哼從身側(cè)響起蛛淋,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎篡腌,沒想到半個(gè)月后褐荷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘹悼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年叛甫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绘迁。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡合溺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缀台,到底是詐尸還是另有隱情棠赛,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布膛腐,位于F島的核電站睛约,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哲身。R本人自食惡果不足惜辩涝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勘天。 院中可真熱鬧怔揩,春花似錦、人聲如沸脯丝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宠进。三九已至晕拆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間材蹬,已是汗流浹背实幕。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工吝镣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昆庇。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓末贾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凰锡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子未舟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359