centos 下安裝RabbmitMQ+PHP RabbmitMQ應用

你或許在思考數(shù)據(jù)分發(fā)浙值、無阻塞作業(yè)或者消息推送恳不。或者你想要進行發(fā)布/訂閱开呐,異步任務烟勋,工作隊列。所有的這些模式筐付,都是消息隊列的一部分卵惦。

1.安裝RabbmitMQ

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el6.noarch.rpm

獲取rpm ,安裝的時候會發(fā)現(xiàn)缺少依賴

安裝依賴erlang

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang

注意不要用epel的源直接yum安裝,epel源的erlang版本太低
安裝依賴socat

yum install socat

最后

rpm -Uvh rabbitmq-server-3.6.8-1.el6.noarch.rpm

2.php的RabbmitMQ庫

{
  "require": {
      "php-amqplib/php-amqplib": "2.6.*"
  }
}
comoser install

3.php+RabbmitMQ helloworld

//send.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'); //發(fā)送一個消息到hello頻道

echo " [x] Sent 'Hello World!'\n";
$channel->close();
$connection->close();
//receive.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) {
  echo " [x] Received ", $msg->body, "\n";
};

//接收hello頻道的消息
$channel->basic_consume('hello', '', false, true, false, false, $callback);

while(count($channel->callbacks)) {
    $channel->wait();
}

4.運行

首先運行起來rabbmitMQ server

service rabbmitmq-server start

掛起receive.php接收消息處理

php receive.php

發(fā)送消息

##另起一個窗口執(zhí)行
php send.php

以上代碼就構建了一個簡單的消息隊列

image.png

消息從send.php 生產(chǎn)(p) 進入隊列 交由 消費者(c)

注意:當關閉了命令行窗口receive.php 進程將會結(jié)束,這個時候就需要借助
supservisor 來將receive.php 腳本后臺運行。這部分代碼可以改寫應用作簡單的異步隊列任務的場景穴豫,但到了高并發(fā)高可用需求下就要進行額外的一些處理夸楣。在之后的文章中我會講到rabbmitMQ的競爭消費模式和superverisor的用法。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庸疾,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件当编,死亡現(xiàn)場離奇詭異届慈,居然都是意外死亡,警方通過查閱死者的電腦和手機忿偷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門金顿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鲤桥,你說我怎么就攤上這事揍拆。” “怎么了茶凳?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵嫂拴,是天一觀的道長播揪。 經(jīng)常有香客問我,道長筒狠,這世上最難降的妖魔是什么猪狈? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮辩恼,結(jié)果婚禮上雇庙,老公的妹妹穿的比我還像新娘。我一直安慰自己运挫,他們只是感情好状共,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布套耕。 她就那樣靜靜地躺著谁帕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冯袍。 梳的紋絲不亂的頭發(fā)上匈挖,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音康愤,去河邊找鬼儡循。 笑死,一個胖子當著我的面吹牛征冷,可吹牛的內(nèi)容都是我干的择膝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼检激,長吁一口氣:“原來是場噩夢啊……” “哼肴捉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叔收,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤齿穗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饺律,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窃页,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年复濒,在試婚紗的時候發(fā)現(xiàn)自己被綠了脖卖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巧颈,死狀恐怖畦木,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洛二,我是刑警寧澤馋劈,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布攻锰,位于F島的核電站,受9級特大地震影響妓雾,放射性物質(zhì)發(fā)生泄漏娶吞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一械姻、第九天 我趴在偏房一處隱蔽的房頂上張望妒蛇。 院中可真熱鬧,春花似錦楷拳、人聲如沸绣夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陶耍。三九已至,卻和暖如春她混,著一層夾襖步出監(jiān)牢的瞬間烈钞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工坤按, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毯欣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓臭脓,卻偏偏與公主長得像酗钞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子来累,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理砚作,服務發(fā)現(xiàn),斷路器佃扼,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評論 25 707
  • Composer Repositories Composer源 Firegento - Magento模塊Comp...
    零一間閱讀 3,958評論 1 66
  • 斧頭把傷口 打進木頭 木頭愈合 成為一把感傷的椅子 放在陽臺 斧頭靠在上面偎巢,休息 這么多年 總是疼痛叫醒斧子 去把...
    我是蝎大人閱讀 202評論 4 1
  • 一.使用.bundle存放HTML代碼 1压昼、新建一個www文件夾,將HTML文件拷貝到www文件夾下面瘤运,然后將文件...
    BestVast閱讀 1,269評論 2 1