摘要:概述是一款消息隊列中間件。他提供了幾乎覆蓋所有語言的與文檔,簡直強大的不的了。要詳細的去了解學習,我建議還是看官方文檔吧。對文章有什么問題或疑問,歡迎在評論區(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ā)之初體驗 前言:選型的時候前后端都準備自己搞,然后選中wafer方案,搭建的時候,發(fā)現官方文檔沒有了,后來問客服,客服說wafer方案是存量...
摘要:小程序云開發(fā)之初體驗前言選型的時候前后端都準備自己搞,然后選中方案,搭建的時候,發(fā)現官方文檔沒有了,后來問客服,客服說方案是存量用戶使用的,相關文檔已經下線說是現在主推云開發(fā),然后帶著疑問和懵逼臉轉向了云開發(fā)最后發(fā)現云開發(fā)的我是幸福的 小程序云開發(fā)之初體驗 前言:選型的時候前后端都準備自己搞,然后選中wafer方案,搭建的時候,發(fā)現官方文檔沒有了,后來問客服,客服說wafer方案是存量...
摘要:小程序云開發(fā)之初體驗前言選型的時候前后端都準備自己搞,然后選中方案,搭建的時候,發(fā)現官方文檔沒有了,后來問客服,客服說方案是存量用戶使用的,相關文檔已經下線說是現在主推云開發(fā),然后帶著疑問和懵逼臉轉向了云開發(fā)最后發(fā)現云開發(fā)的我是幸福的 小程序云開發(fā)之初體驗 前言:選型的時候前后端都準備自己搞,然后選中wafer方案,搭建的時候,發(fā)現官方文檔沒有了,后來問客服,客服說wafer方案是存量...
閱讀 2263·2021-09-30 09:48
閱讀 3634·2021-09-24 10:27
閱讀 1791·2021-09-22 15:32
閱讀 2026·2021-08-09 13:44
閱讀 3575·2019-08-30 15:55
閱讀 1045·2019-08-29 17:12
閱讀 2000·2019-08-29 17:05
閱讀 2918·2019-08-29 13:43