成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

RabbitMQ 初體驗(yàn)

keithxiaoy / 1360人閱讀

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

概述
RabbitMQ是一款消息隊(duì)列中間件。他提供了幾乎覆蓋所有語言的SDK與文檔,簡直強(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ù)庫概念差不多

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

創(chuàng)建多個(gè)隊(duì)列與創(chuàng)建多個(gè)數(shù)據(jù)庫一樣,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ù)庫概念差不多

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

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

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

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

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

無消息時(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ì)列,所有你可以開啟多個(gè)消費(fèi)者去執(zhí)行消息隊(duì)列內(nèi)的任務(wù)。你可以像我這樣

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<