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

資訊專欄INFORMATION COLUMN

centos 下安裝RabbmitMQ+PHP RabbmitMQ應用

simpleapples / 1162人閱讀

摘要:你或許在思考數(shù)據(jù)分發(fā)無阻塞作業(yè)或者消息推送。所有的這些模式,都是消息隊列的一部分。這部分代碼可以改寫應用作簡單的異步隊列任務的場景,但到了高并發(fā)高可用需求下就要進行額外的一些處理。在之后的文章中我會講到的競爭消費模式和的用法。

你或許在思考數(shù)據(jù)分發(fā)、無阻塞作業(yè)或者消息推送?;蛘吣阆胍M行發(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 PhpAmqpLibConnectionAMQPStreamConnection;
use PhpAmqpLibMessageAMQPMessage;
$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!"
";
$channel->close();
$connection->close();
//receive.php
require_once __DIR__ . "/vendor/autoload.php";
use PhpAmqpLibConnectionAMQPStreamConnection;
$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", "
";
$callback = function($msg) {
  echo " [x] Received ", $msg->body, "
";
};

//接收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

以上代碼就構(gòu)建了一個簡單的消息隊列


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

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

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

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

相關文章

  • CentOS 生產(chǎn)環(huán)境配置

    摘要:最新的已經(jīng)釋出,更新了,非常贊。不過目前尚未釋出,等待中。初始配置對于一般配置來說,不需要安裝倉庫,本文主要在于希望跟隨的配置流程,緊跟紅帽公司對于服務器的配置說明。 原文來自靜雅齋,轉(zhuǎn)載請注明出處。 生產(chǎn)環(huán)境和開發(fā)環(huán)境測試環(huán)境都不一樣,所以配置都不能隨意,對于大多數(shù)情況來說,RHEL 絕對是一個最佳選擇,除了最穩(wěn)定的內(nèi)核發(fā)布和最全的驅(qū)動支持,還能享受到 RHEL 10 年生命周期中 ...

    daydream 評論0 收藏0
  • LNMP環(huán)境搭建(三):PHP

    摘要:安裝擴展前面在設置了拓展的安裝路徑,于是此處已自動將加入拓展目錄中,只要在,添加即可查看是否安裝成功安裝擴展根據(jù)版本選擇對應的查看是否安裝成功相關文章環(huán)境搭建一環(huán)境搭建二環(huán)境搭建三 安裝的基本步驟官方文檔都有說明:PHP官網(wǎng)安裝文檔 編譯安裝 依賴環(huán)境 這一步實際上已經(jīng)在:LNMP環(huán)境搭建(二):Nginx上完成了 [root@localhost ~]# yum -y inst...

    malakashi 評論0 收藏0
  • 使用dockerfile 部署lnmpr環(huán)境

    摘要:且容器的創(chuàng)建和停止都十分快速,幾乎跟創(chuàng)建和終止原生應用一致。命令是編寫之后使用的。如果是在一個不支持的平臺上運行或者不希望在中運行,也可以使用格式的指令環(huán)境變量這個環(huán)境亦是用來表明鏡像模板最后的更新時間容器添加卷。 該文章為學習docker 筆記一 docker 簡介 Docker 是基于GO語言實現(xiàn)的開源容器項目,現(xiàn)在主流的Linux系統(tǒng)都支持Docker,Docker 的構(gòu)想是想要...

    HitenDev 評論0 收藏0

發(fā)表評論

0條評論

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