RabbitMQ是一个实现了AMQP(高级消息队列协议,是一个线路层的协议规范)的开源消息中间件,使用高性能Erlang编写,RabbitMQ具有可靠性,支持多种协议,高可用,支持消息集群以及多语言客户端等特点,在分布式系统中存储转发消息。
下面是我的安装操作:
1、安装Erlang
(1)安装类库
- yum -y install ncurses-devel
- yum -y install openssl-devel
- yum -y install unixODBC-devel
- yum -y install gcc-c++
(2)解压Erl 安装包 (注意 不加解压 z)
tar -xvf otp_src_18.2.1.tar.gz
./configure --prefix=/usr/local/src/erlang #校验安装信息并且设定安装路径
配置Erlang环境变量,vi /etc/profile文件,增加下面的环境变量:
- export ERLANG_HOME=/usr/local/src/erlang
- export PATH=$ERLANG_HOME/bin:$PATH
使得文件生效 source /etc/profile
(3) 测试 erl,如图为成功
2、安装RabbitMQ
(1)下载RabbitMQ
官方下载地址http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz
注:RabbitMQ3.6版本无需make、make install 解压就可以用
#解压rabbitmq,官方给的包是xz压缩包,所以需要使用xz命令
xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz
#xz解压后得到.tar包,再用tar命令解压
tar -xvf rabbitmq-server-generic-unix-3.6.1.tar
#修改文件夹名
mv rabbitmq_server-3.6.1 rabbitmq-3.6.1
#开启管理页面插件
cd ./rabbitmq-3.6.1/sbin/
./rabbitmq-plugins enable rabbitmq_management
(2)启动:
#启动命令,该命令ctrl+c后会关闭服务
./rabbitmq-server
#在后台启动Rabbit
./rabbitmq-server -detached
#关闭服务
./rabbitmqctl stop
#关闭服务(kill) 找到rabbitmq服务的pid [不推荐]
ps -ef|grep rabbitmq
kill -9 ****
(3)添加管理员账号:(XXXXX/XXXX)
rabbitmq默认会创建guest账号,只能用于localhost登录页面管理员
注: 必须在运行时才能分配管理员
#进入RabbitMQ安装目录
cd /mq/rabbitmq_server-3.6.1/sbin
#添加用户
#rabbitmqctl add_user Username Password
./rabbitmqctl add_user rabbitadmin 123456
#分配用户标签
#rabbitmqctl set_user_tags User Tag
#[administrator]:管理员标签
./rabbitmqctl set_user_tags rabbitadmin administrator
(4)常用命令:
查看服务状态:rabbitmqctl status
关闭服务:rabbitmqctl stop
查看mq用户:rabbitmqctl list_users
查看用户权限:rabbitmqctl list_user_permissions guest
新增用户: rabbitmqctl add_user admin 123456
赋予管理员权限:
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
(5)登录管理界面:
浏览器输入地址:http://服务器IP地址:15672/
(6)访问不了
安装完成之后如果机器有iptables,需要开放端口
vim /etc/sysconfig/iptables
#RabbitMQ
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT
#RabbitMQ
设置端口号,可供外部访问:
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT