队列 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();
}

?>

大家可以自己测试一下...





    


你可能感兴趣的:(activemq,队列)