隊列 activeMQ

    在web開發過程中,我們會使用到隊列。先進先出的特點。在最開始接觸的是張宴的HTTPSQS,後來在使用Redis的時候,使用過reids作爲隊列,同時memcache也可以作爲隊列。今天主要是說一下Apache出品,最流行的,能力強勁的開源消息總線,ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規範的 JMS Provider實現,多種語言和協議客戶端。語言: JAVA、C、C++、C#、Ruby、Perl、Python、PHP 。應用協議: OpenWire,Stomp REST等等。默認支持隊列是文件存儲,它還可以支持隊列數據存儲到數據庫中。

        在PHP中主要是說一下STOMP。stomp的官方網站是:http://activemq.apache.org/

        第一:stomp是PHP的一個擴展,你可以在linux下編譯安裝,也可以在window中下載dll文件進行安裝

        第二:你也可以使用stomp類,不安裝PHP擴展。


    下載解壓之後的文件:

        wKiom1OdwSXiGn8DAADv1B7h4Ms879.jpg

在windows下直接啓動服務端,根據自己的系統運行 activemq.bat文件啓動服務。


wKiom1OeTrrhek2FAAOHJfbIsl8632.jpg


activeMQ自帶服務端查看界面,大家可以運行:http://localhost:8161/    看一下自己的服務端,如圖:

wKioL1OeTxiSMJw6AAKvzvNvngc962.jpg


然後點擊   manage activeMQ broker

wKioL1OeT-eDDj6kAALBEldzpSU731.jpg


然後編寫客戶端代碼:

stomp的相關函數參考地址:http://www.php.net/manual/zh/book.stomp.php


<?php
//phpinfo(); //查看STOMP是否加載上

$user = getenv("ACTIVEMQ_USER"); 
if( !$user ) $user = "admin";

$password = getenv("ACTIVEMQ_PASSWORD");
if( !$password ) $password = "password";

$host = getenv("ACTIVEMQ_HOST");
if( !$host ) $host = "localhost";

$port = getenv("ACTIVEMQ_PORT");
if( !$port ) $port = 61613;  //端口

$destination  = 'zhl';  //隊列名稱

$msg = "Hello EveryOne, Welcome to PHP extension Stomp...";

try {
	$url = 'tcp://'.$host.":".$port;
	$stomp = new Stomp($url, $user, $password);
	$result = $stomp->send($destination, $msg);   //寫信息到隊列中
	$stomp->subscribe($destination);
	$result = $stomp->readFrame(); // 查看隊列中的信息中第一次插入的信息
	var_dump($result);
} catch (StompException $e) {
	echo $e->getMessage();
}

?>

大家可以自己測試一下...





    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章