本文主要内容是RabbitMQ的安装步骤【Windows系统与linux上的安装】及客户端的简单使用。
1、下载
下载地址:http://www.rabbitmq.com/download.html
2、Windows上安装
2.1 安装安装Erlang
下载erlang:http://www.erlang.org/download/otp_win64_17.3.exe
安装:
erlang安装完成。
2.2 安装安装RabbitMQ
RabbitMQ安装完成。
启动、停止、重新安装等。
2.3启用管理工具
第一步:点击打开RabbitMQ的命令窗口。如图:
第二步:输入命令rabbitmq-plugins enable rabbitmq_management
这个命令的意思是安装RabbitMQ的插件。
第三步:测试是否安装成功。
方法:访问地址:http://127.0.0.1:15672/
默认账号:guest/guest
3、Linux上安装
3.1安装erlang
添加yum支持
cd /usr/local/src/
3.2安装RabbitMQ
4、Deeping和MacOS上安装
4.1安装erlang
添加yum支持
cd /usr/local/src/
Update the package index: # sudo apt-get update Install erlang deb package: # sudo apt-get install erlang
4.2安装RabbitMQ
Update the package index: # sudo apt-get update Install rabbitmq-server deb package: # sudo apt-get install rabbitmq-serve
5、客户端的简单介绍
1、界面的介绍
注意设置虚拟主机与添加用户这块。
关于虚拟主机,Virtual Host,其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Virtual Host
-
超级管理员(administrator)
-
监控者(monitoring)
-
策略制定者(policymaker)
-
普通管理者(management)
-
其他
<?php /************************************* * PHP amqp(RabbitMQ) Demo - consumer * Author: Linvo * Date: 2012/7/30 *************************************/ //配置信息 $conn_args = array( \'host\' => \'192.168.1.93\', \'port\' => \'5672\', \'login\' => \'guest\', \'password\' => \'guest\', \'vhost\'=>\'/\' ); $e_name = \'e_linvo\'; //交换机名 $q_name = \'q_linvo\'; //队列名 $k_route = \'key_1\'; //路由key //创建连接和channel $conn = new AMQPConnection($conn_args); if (!$conn->connect()) { die("Cannot connect to the broker!\\n"); } $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($q_name); $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){ $q->consume(\'processMessage\'); //$q->consume(\'processMessage\', AMQP_AUTOACK); //自动ACK应答 } $conn->disconnect(); /** * 消费回调函数 * 处理消息 */ function processMessage($envelope, $queue) { $msg = $envelope->getBody(); echo $msg."\\n"; //处理消息 $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答 }