成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

RabbitMQ 初體驗(yàn)

keithxiaoy / 1431人閱讀

摘要:概述是一款消息隊(duì)列中間件。他提供了幾乎覆蓋所有語(yǔ)言的與文檔,簡(jiǎn)直強(qiáng)大的不的了。要詳細(xì)的去了解學(xué)習(xí),我建議還是看官方文檔吧。對(duì)文章有什么問(wèn)題或疑問(wèn),歡迎在評(píng)論區(qū)留言。

概述
RabbitMQ是一款消息隊(duì)列中間件。他提供了幾乎覆蓋所有語(yǔ)言的SDK與文檔,簡(jiǎn)直強(qiáng)大的不的了。要詳細(xì)的去了解學(xué)習(xí)RabbitMQ,我建議還是看官方文檔吧。http://www.rabbitmq.com/getst...

消息隊(duì)列有以下幾個(gè)基本用途

異步處理

應(yīng)用解耦

流量削峰

系統(tǒng)架構(gòu)

消息隊(duì)列的這幾個(gè)用途我會(huì)在后續(xù)的文章以真實(shí)案例去表述
生產(chǎn)者 創(chuàng)建RabbitMQ鏈接
$connection = new AMQPStreamConnection("localhost", 5672, "guest", "guest");
$channel    = $connection->channel ();

與鏈接一個(gè)數(shù)據(jù)庫(kù)概念差不多

創(chuàng)建一個(gè)隊(duì)列聲明
$channel->queue_declare ("hello");

創(chuàng)建多個(gè)隊(duì)列與創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)一樣,hello則是隊(duì)列名

創(chuàng)建一條消息到隊(duì)列
$message = new AMQPMessage("Hello World!");
發(fā)布消息到隊(duì)列
$channel->basic_publish ($message, "", "hello");

hello 是上面創(chuàng)建的隊(duì)列聲明

關(guān)閉鏈接
$channel->close ();
$connection->close ();

釋放資源

消費(fèi)者 創(chuàng)建RabbitMQ鏈接
$connection = new AMQPStreamConnection("localhost", 5672, "guest", "guest");
$channel    = $connection->channel ();

與鏈接一個(gè)數(shù)據(jù)庫(kù)概念差不多

創(chuàng)建一個(gè)隊(duì)列聲明
$channel->queue_declare ("hello");

創(chuàng)建多個(gè)隊(duì)列與創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)一樣,hello則是隊(duì)列名

消費(fèi)
$channel->basic_consume ("hello", "", false, true, false, false, function ($msg) {
    echo " [x] Received ", $msg->body, "
";
});

通過(guò)回調(diào)函數(shù)處理消息隊(duì)列

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

無(wú)消息時(shí),掛起保持等待狀態(tài)

關(guān)閉鏈接
$channel->close ();
$connection->close ();

釋放資源

完整的案例

完整的按鈕則是上面所有代碼的整理

生產(chǎn)者
$connection = new AMQPStreamConnection("localhost", 5672, "guest", "guest");
$channel    = $connection->channel ();
$channel->queue_declare ("hello");

$message = new AMQPMessage("Hello World!");
$channel->basic_publish ($message, "", "hello");

$channel->close ();
$connection->close ();
消費(fèi)者
$connection = new AMQPStreamConnection("localhost", 5672, "guest", "guest");
$channel    = $connection->channel ();
$channel->queue_declare ("hello");
// basic_consume 方法第7個(gè)方法可以直接傳入函數(shù)
$channel->basic_consume ("hello", "", false, true, false, false, function ($msg) {
    echo " [x] Received ", $msg->body, "
";
});
while (count ($channel->callbacks)) {
    $channel->wait ();
}
$channel->close ();
$connection->close ();
執(zhí)行
php {生產(chǎn)者}.php
php {消費(fèi)者}.php
其他

RabbitMQ支持多線程處理消息隊(duì)列,所有你可以開(kāi)啟多個(gè)消費(fèi)者去執(zhí)行消息隊(duì)列內(nèi)的任務(wù)。你可以像我這樣

如果你感覺(jué)RabbitMQ這玩意還需要安裝啥的感覺(jué)特麻煩,那你可以看下我的Laravel隊(duì)列如何簡(jiǎn)單的玩起來(lái)。
https://segmentfault.com/a/11...
致謝

感謝你看完我這篇文章,純手記的一篇文章,官方文檔對(duì)新手的理解造成很多的誤解,所以整理此文檔,盡量避免新手“進(jìn)”坑吧。對(duì)文章有什么問(wèn)題或疑問(wèn),歡迎在評(píng)論區(qū)留言。謝謝

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28980.html

相關(guān)文章

  • 小程序云開(kāi)發(fā)之體驗(yàn)

    摘要:小程序云開(kāi)發(fā)之初體驗(yàn)前言選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)方案是存量用戶使用的,相關(guān)文檔已經(jīng)下線說(shuō)是現(xiàn)在主推云開(kāi)發(fā),然后帶著疑問(wèn)和懵逼臉轉(zhuǎn)向了云開(kāi)發(fā)最后發(fā)現(xiàn)云開(kāi)發(fā)的我是幸福的 小程序云開(kāi)發(fā)之初體驗(yàn) 前言:選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中wafer方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)wafer方案是存量...

    yanbingyun1990 評(píng)論0 收藏0
  • 小程序云開(kāi)發(fā)之體驗(yàn)

    摘要:小程序云開(kāi)發(fā)之初體驗(yàn)前言選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)方案是存量用戶使用的,相關(guān)文檔已經(jīng)下線說(shuō)是現(xiàn)在主推云開(kāi)發(fā),然后帶著疑問(wèn)和懵逼臉轉(zhuǎn)向了云開(kāi)發(fā)最后發(fā)現(xiàn)云開(kāi)發(fā)的我是幸福的 小程序云開(kāi)發(fā)之初體驗(yàn) 前言:選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中wafer方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)wafer方案是存量...

    Lionad-Morotar 評(píng)論0 收藏0
  • 小程序云開(kāi)發(fā)之體驗(yàn)

    摘要:小程序云開(kāi)發(fā)之初體驗(yàn)前言選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)方案是存量用戶使用的,相關(guān)文檔已經(jīng)下線說(shuō)是現(xiàn)在主推云開(kāi)發(fā),然后帶著疑問(wèn)和懵逼臉轉(zhuǎn)向了云開(kāi)發(fā)最后發(fā)現(xiàn)云開(kāi)發(fā)的我是幸福的 小程序云開(kāi)發(fā)之初體驗(yàn) 前言:選型的時(shí)候前后端都準(zhǔn)備自己搞,然后選中wafer方案,搭建的時(shí)候,發(fā)現(xiàn)官方文檔沒(méi)有了,后來(lái)問(wèn)客服,客服說(shuō)wafer方案是存量...

    Labradors 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<