亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式

瀏覽:128日期:2022-06-10 15:45:11
目錄
  • RabbitMQ 6種工作模式
    • 安裝
    • 6種模式
  • 最后

    RabbitMQ 6種工作模式

    對(duì)RabbitMQ 6種工作模式(簡(jiǎn)單模式、工作模式、訂閱模式、路由模式、主題模式、RPC模式)進(jìn)行場(chǎng)景和參數(shù)進(jìn)行講解,PHP代碼作為實(shí)例。

    安裝

    客戶端實(shí)現(xiàn):添加擴(kuò)展,執(zhí)行composer.phar install命令

    {    "require": {"php-amqplib/php-amqplib": ">=3.0"    }}

    引入包

    require_once __DIR__ . "/vendor/autoload.php";use PhpAmqpLib\Connection\AMQPStreamConnection;use PhpAmqpLib\Message\AMQPMessage;

    建立一個(gè)鏈接,

    # 鏈接服務(wù)$connection = new AMQPStreamConnection("127.0.0.1", 5672, "stark", "1990@stark");$channel = $connection->channel();$channel->queue_declare("hello", false, false, false, false);$msg = new AMQPMessage("Hello World!");$channel->basic_publish($msg, "", "hello");echo " [x] Sent "Hello World!"\n";# 關(guān)閉信道和鏈接$channel->close();$connection->close();

    6種模式

    1.簡(jiǎn)單模式

    簡(jiǎn)單模式是最簡(jiǎn)單的使用方式,P代表生產(chǎn)者,C代表消費(fèi)者,紅色的代表隊(duì)列,執(zhí)行過(guò)程生產(chǎn)者發(fā)送消息到隊(duì)列,右面的消費(fèi)者消費(fèi)消息,需要注意的是這里沒(méi)有交換機(jī)。

    生產(chǎn)者代碼(PHP)

    # 聲明隊(duì)列$queueName = "MqName";$channel->queue_declare($queueName, false, false, false, false);

    queue_declare 參數(shù)說(shuō)明:

    • 隊(duì)列名
    • 檢測(cè)隊(duì)列是否存在,true只檢測(cè)不創(chuàng)建,false會(huì)創(chuàng)建
    • 是否持久化隊(duì)列,true持久化
    • 是否私有隊(duì)列 true代表私有
    • 當(dāng)消費(fèi)者斷開(kāi)后,隊(duì)列是否自動(dòng)刪除
    # 創(chuàng)建AMQP消息類型$msg = new AMQPMessage($data,    array("delivery_mode" => AMQPMessage::DELIVERY_MODE_PERSISTENT));

    AMQPMessage 參數(shù)說(shuō)明: 1.消息體 2.是否持久化

    $channel->basic_publish($msg, "", $queueName);

    basic_publish參數(shù)詳解:

    • 發(fā)送內(nèi)容
    • 交換機(jī)名稱,簡(jiǎn)單模式?jīng)]有使用交換機(jī)
    • 隊(duì)列名稱

    消費(fèi)者代碼:

    $channel->basic_consume("hello", "", false, true, false, false, $callback);# 阻塞隊(duì)列,做監(jiān)聽(tīng)while ($channel->is_open()) {    $channel->wait();}

    basic_consume 參數(shù)說(shuō)明:

    • 隊(duì)列名
    • 消費(fèi)者標(biāo)簽
    • AMQP標(biāo)準(zhǔn)
    • 是否自動(dòng)應(yīng)答 ack true 自動(dòng)應(yīng)答,false應(yīng)答
    • 是否排他
    • ?
    • 回調(diào)函數(shù)

    2.工作模式

    它由一個(gè)生產(chǎn)者發(fā)送在隊(duì)列中,work隊(duì)列會(huì)分配消息給不同的消費(fèi)者,讓每個(gè)消費(fèi)者接收到不同的消息。

    工作模式的場(chǎng)景特別適合集群模式的異步處理,最大程度發(fā)揮每一臺(tái)服務(wù)器的性能。

    3.訂閱模式

    從訂閱模式開(kāi)始就使用了交換機(jī),訂閱模式使用了廣播類型的交換機(jī),它會(huì)讓每個(gè)隊(duì)列的消息都是一樣的。

    生產(chǎn)者把消息發(fā)送給交換機(jī),交換機(jī)把消息發(fā)送給和它綁定的隊(duì)列,讓消費(fèi)者來(lái)消費(fèi),需要強(qiáng)調(diào)的是綁定的隊(duì)列獲得的消息是一模一樣的,訂閱模式就是讓所有的消費(fèi)者獲得相同的消息。

    訂閱模式使用場(chǎng)景,天氣、微博的訂閱,收費(fèi)文章的訂閱等等。

    生產(chǎn)者實(shí)現(xiàn):

    $channel->exchange_declare("logs", "fanout", false, false, false);# 綁定交換機(jī)和隊(duì)列$channel->queue_bind($queue_name, "logs");

    交換機(jī)參數(shù)詳解:

    • 交換機(jī)名
    • 交換機(jī)類型
    • 檢查是否存在
    • 是否持久化
    • 是否自動(dòng)刪除
    $channel->basic_publish($msg, "這里是交換機(jī)的名字", $queueName);

    消費(fèi)者和生產(chǎn)者一樣,先綁定交換機(jī):

    4.路由模式

    路由模式使用direct定向類型的交換機(jī),生產(chǎn)者發(fā)送一個(gè)消息到交換機(jī),交換機(jī)根據(jù)發(fā)送來(lái)的路由鍵發(fā)送到相匹配的隊(duì)列中,來(lái)和隊(duì)列綁定的消費(fèi)者進(jìn)行消費(fèi)。

    訂閱模式和路由模式的區(qū)別,訂閱模式無(wú)條件的把消息發(fā)送給所有的消費(fèi)者,每一個(gè)消費(fèi)者收到的消息都是一樣的,而路由模式對(duì)消息進(jìn)行篩選發(fā)送給對(duì)應(yīng)的消費(fèi)者隊(duì)列。

    5.主題模式

    主題模式采用的事topic的交換機(jī),通過(guò)通配符進(jìn)行匹配,通配符主要有*#

    6.RPC模式

    RabbitMQ的RPC模式,支持生產(chǎn)者和消費(fèi)者不在同一個(gè)系統(tǒng)中,即允許遠(yuǎn)程調(diào)用的情況。通常,消費(fèi)者作為服務(wù)端,放置在遠(yuǎn)程的系統(tǒng)中,提供接口,生產(chǎn)者調(diào)用接口,并發(fā)送消息。

    RPC模式是一種遠(yuǎn)程調(diào)用的模式,因?yàn)樾枰猦ttp請(qǐng)求,因此速度比系統(tǒng)內(nèi)部調(diào)用慢。而且rpc模式下,通常不易區(qū)分哪些是來(lái)自外部的請(qǐng)求,哪些是內(nèi)部的請(qǐng)求,導(dǎo)致整體速度較慢。因此,不能濫用rpc模式。

    最后

    后面的3個(gè)模式不做詳細(xì)的代碼講解了,可以看參考官網(wǎng),實(shí)現(xiàn)起來(lái)都是差不多的。

    • 官網(wǎng):www.rabbitmq.com/getstarted.…

    以上就是以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式的詳細(xì)內(nèi)容,更多關(guān)于RabbitMQ模式php實(shí)例的資料請(qǐng)關(guān)注其它相關(guān)文章!

    標(biāo)簽: PHP
    主站蜘蛛池模板: 日日噜噜夜夜狠狠久久丁香七 | 国产成人精品男人的天堂538 | 真正毛片 | 国产一级高清免费观看 | 美女黄网页 | 国产一区二区视频免费 | 免费能直接在线观看黄的视频 | 国产精品久久久久久久久久免费 | 高清性色生活片久久久 | 一区二区精品 | 精品久久一 | 国产成人精品1024在线 | 精品综合久久久久久97超人该 | 国产视频在线看 | 国产在线视频在线观看 | 久久久久久久国产视频 | 精品成人在线视频 | 国产亚洲一区二区精品 | 1819高清欧美xx| 欧美蜜桃臀在线观看一区 | 久久乐国产精品亚洲综合m3u8 | 中国china体内裑精亚洲毛片 | 国产欧美一区二区三区视频在线观看 | 国产午夜不卡在线观看视频666 | 久久久久18 | 人做人爱全免费视频 | 黄色视频毛片 | 成人特黄午夜性a一级毛片 成人爱av18丰满 | 艾小青亚洲专区在线播放 | 大学生gayxxxx chinese | 欧美α一级毛片 | 精品三级国产一区二区三区四区 | 91国偷自产一区二区三区 | 在线日本人观看成本人视频 | 日本久久黄色 | 日本粉色视频 | 国产国语在线播放视频 | 国产精品青草久久久久福利99 | 激情欧美成人狠狠色金八天国 | 国产一级高清免费观看 | 国产大量女主播精品视频 |