RabbitMQ的安装与客户端的简单实用
本文主要内容是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/
mkdir rabbitmq
cd rabbitmq
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang
3.2安装RabbitMQ
上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
几个常用命令:
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
chkconfig rabbitmq-server on //设置开机自启
设置配置文件:
cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config
设置用户远程访问:
vi /etc/rabbitmq/rabbitmq.config
去掉后面的逗号
开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
4、Deeping和MacOS上安装
4.1安装erlang
添加yum支持
cd /usr/local/src/
mkdir rabbitmq
Update the package index: # sudo apt-get update Install erlang deb package: # sudo apt-get install erlang
4.2安装RabbitMQ
上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:
Update the package index: # sudo apt-get update Install rabbitmq-server deb package: # sudo apt-get install rabbitmq-serve
几个常用命令:
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
去掉后面的逗号
开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
5、客户端的简单介绍
1、界面的介绍
注意设置虚拟主机与添加用户这块。
关于虚拟主机,Virtual Host,其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Virtual Host
用户角色有下面几种:
-
超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
-
监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
-
策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
-
普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
-
其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
php连接执行代码
<?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! "); } $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()." "; //创建队列 $q = new AMQPQueue($channel); $q->setName($q_name); $q->setFlags(AMQP_DURABLE); //持久化 echo "Message Total:".$q->declare()." "; //绑定交换机与队列,并指定路由键 echo 'Queue Bind: '.$q->bind($e_name, $k_route)." "; //阻塞模式接收消息 echo "Message: "; while(True){ $q->consume('processMessage'); //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答 } $conn->disconnect(); /** * 消费回调函数 * 处理消息 */ function processMessage($envelope, $queue) { $msg = $envelope->getBody(); echo $msg." "; //处理消息 $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答 }
转载至 https://www.cnblogs.com/yangh965/p/5862347.html