RabbitMQ簡單例項demo

2022-06-15 06:24:08 字數 1882 閱讀 6077

在php中建立乙個rabbitmq的生產者基本步驟:

1、鏈結connection

2、建立乙個channel

3、建立或鏈結乙個交換機

4、建立或鏈結乙個佇列

5、交換機繫結佇列

6、投遞訊息

7、關閉channel

8、關閉connection

use phpamqplib\connection\amqpstreamconnection;

//建立乙個鏈結

$connection = new amqpstreamconnection('localhost', 5672, 'guest', 'guest');

//建立乙個channel

$channel = $connection->channel();

//建立乙個交換機

$channel->exchange_declare('e1', 'direct', false, false, true, false, false, null, null);

引數解析:

引數說明:

//建立乙個佇列

$channel->queue_declare('hello', false, false, false, false);

引數解析:

引數說明:

//繫結交換機到佇列

$channel->queue_bind('queue', 'exchange', 'routing_key', 'nowait', 'arguments', 'ticket');

引數解析:

//繫結交換機

$channel->exchange_bind($destination, $source, $routing_key, $nowait, $arguments, $ticket);

引數解析:

生產者傳送訊息至交換器source中,交換器source根據路由鍵找到與其匹配的另乙個交換器destination,井把訊息**到destination中,

進而儲存在.destination繫結的佇列queue中,某種程度上來說destination交換器可以看作乙個佇列。如圖:

//投遞訊息

$channel->basic_publish($msg, $exchange, $routing_key, $mandatory, $immediate, $ticket);

引數解析:

引數說明:

rabbitmq消費方式共有2種,分別是推模式和拉模式

推模式是通過持續訂閱的方式來消費資訊,

consume將通道(channel)直為接收模式,直到取消佇列的訂閱為止。在接收模式期間,rabbitmq會不斷地推送訊息給消費者。

推送訊息的個數還是會受到channel.qos的限制

//消費訊息

$channel->basic_consume($queue, $consumer_tag = '',$no_local = false,$no_ack = false,$exclusive = false,$nowait = false,$callback = null,$ticket = null,$arguments = array());

引數解析:

拉模式:

相對來說比較簡單,是由消費者主動拉取資訊來消費,同樣也需要進行ack確認消費

RabbitMQ 工作模式例項

rabbitmq初始化start 除了 模式外 其他的模式都是由 佇列 交換機 key 不同組合實現的 type rabbitmq struct 建立rabbitmq 例項 func newrabbitmq queuename,exchange,key string rabbitmq,error v...

rabbitmq簡單使用

安裝rabbitmq,進入sbin執行rabbitmq service start 傳送者 package com.zhy.rabbit.01 import com.rabbitmq.client.channel import com.rabbitmq.client.connection impor...

RabbitMQ簡單使用

參考部落格 rabbitmq是乙個在amqp協議標準基礎上完整的,可服用的企業訊息系統。它遵循mozilla public license開源協議,採用 erlang 實現的工業級的訊息佇列 mq 伺服器,rabbit mq 是建立在erlang otp平台上。windows下使用cmd 以管理員身...