国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

RabbitMQ 初體驗

keithxiaoy / 1343人閱讀

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

概述
RabbitMQ是一款消息隊列中間件。他提供了幾乎覆蓋所有語言的SDK與文檔,簡直強大的不的了。要詳細的去了解學習RabbitMQ,我建議還是看官方文檔吧。http://www.rabbitmq.com/getst...

消息隊列有以下幾個基本用途

異步處理

應用解耦

流量削峰

系統(tǒng)架構

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

與鏈接一個數據庫概念差不多

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

創(chuàng)建多個隊列與創(chuàng)建多個數據庫一樣,hello則是隊列名

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

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

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

釋放資源

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

與鏈接一個數據庫概念差不多

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

創(chuàng)建多個隊列與創(chuàng)建多個數據庫一樣,hello則是隊列名

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

通過回調函數處理消息隊列

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

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

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

釋放資源

完整的案例

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

生產者
$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 ();
消費者
$connection = new AMQPStreamConnection("localhost", 5672, "guest", "guest");
$channel    = $connection->channel ();
$channel->queue_declare ("hello");
// basic_consume 方法第7個方法可以直接傳入函數
$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 {生產者}.php
php {消費者}.php
其他

RabbitMQ支持多線程處理消息隊列,所有你可以開啟多個消費者去執(zhí)行消息隊列內的任務。你可以像我這樣

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

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

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28980.html

相關文章

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

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

    yanbingyun1990 評論0 收藏0
  • 小程序云開發(fā)之體驗

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

    Lionad-Morotar 評論0 收藏0
  • 小程序云開發(fā)之體驗

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

    Labradors 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<