在php中使用rabbitmq從概念到實戰

2021-08-14 05:31:34 字數 2141 閱讀 1745

首先要知道amqp協議是做什麼的,amap是乙個提供統一訊息服務的應用層標準協議,基於此協議的客戶端與訊息中介軟體可傳遞訊息,rabbitmq就是實現了這個協議的乙個軟體。

訊息者

<?php

//建立連線-->

//建立channel-->

//建立交換機-->

//建立佇列-->

//繫結交換機/佇列/路由鍵-->

//接收訊息

$conn_args = array(

'host' => '127.0.0.1',

'port' => '5672',

'login' => 'guest',

'password' => 'guest',

'vhost'=>'/'

);//交換機名訊息是不能直接傳送到佇列,它需要傳送到交換器

$e_name='e_zcj';//交換機名

$q_name="q_zcj";//佇列名

$k_route="key_1";//路由key

//連線到borker和例項乙個channel

$conn=new amqpconnection($conn_args);

if(!$conn->connect())

//例項channel

//大部分的業務操作是在rabbitmq中提供channel這個介面中完

//成的,在php相應的擴充套件中的amapchanenl需要連線的例項包

//括定義queue、定義exchange、繫結queue與exchange、發布

//訊息

$channel=new amqpchannel($conn);

//建立交換機

$ex=new amqpexchange($channel);

$ex->setname($e_name);

//設定交換機型別

$ex->settype(amqp_ex_type_direct);//direct型別

$ex->setflags(amqp_durable);//持久化

//輸出交換機狀態

echo

"exchange status:".$ex->declare()."\n";

//建立佇列

$q=new amqpqueue($channel);

$q->setname($e_name);//佇列名

//持久化 這個方法做了什麼去看c原始碼吧,,

$q->setflags(amqp_durable);

echo

"message total:".$q->declare()."\n";

//繫結交換機與佇列,並指定路由鍵

echo

"queue bind: ".$q->bind($e_name,$k_route)."\n";

echo

"message:\n";

while(true)

function

processmessage

($envelope,$queue)

生產者

<?php

//$conn_args = array(

'host' => '127.0.0.1',

'port' => '5672',

'login' => 'guest',

'password' => 'guest',

'vhost'=>'/'

);$e_name = 'e_zcj';

$k_route = 'key_1';

$conn = new amqpconnection($conn_args);

if (!$conn->connect())

$channel = new amqpchannel($conn);

$message = "test message! 鄭程駿 is 天才";

$ex = new amqpexchange($channel);

$ex->setname($e_name);

echo

"send message:".$ex->publish($message, $k_route)."\n";

$conn->disconnect();

在C 中使用訊息佇列RabbitMQ

1 什麼是rabbitmq。詳見 作用就是提高系統的併發性,將一些不需要及時響應客戶端且占用較多資源的操作,放入佇列,再由另外乙個執行緒,去非同步處理這些佇列,可極大的提高系統的併發能力。2 安裝 a.如果沒有erlang執行環境,在安裝過程中會提醒先安裝erlang環境。注意安裝完成後必須配置環境...

在C 中使用訊息佇列RabbitMQ

參考文章 開發環境 工具 vs2017 rabbitmq erlang執行環境 先安裝erlang執行環境然後再安裝rabbitmq 安裝和配置就不說了 預設安裝路徑 c program files rabbitmq server,在rabbitmq server 3.6.11 sbin資料夾下有b...

在php中使用Sphinx

要使用php連線sphinx進行全文搜尋,有兩種方式 將sphinx作為php擴充套件安裝,這種方式比較麻煩,此處不介紹 在sphinx原始碼目錄下的有個api sphinxapi.php,將此檔案reqire到你的php中,即可呼叫api方法進行全文搜尋 require sphinxapi.php...