1、安装 Erlang
就想我们编写Java引用程序需要安装 JDK一样,安装 RabbitMQ ,我们也需要安装 Erlang 。
①、下载 erlang 安装包
![](https://ask.qcloudimg.com/http-save/yehe-1148397/rfjkjsuunw.png?imageView2/2/w/1620)
将安装包下载到 /home/erlang 目录下。
1 wget http://www.erlang.org/download/otp_src_R16B02.tar.gz
②、解压
1 tar -zxvf otp_src_R16B02.tar.gz
③、编译安装
首先进入解压的文件目录,然后安装如下插件
![](https://ask.qcloudimg.com/http-save/yehe-1148397/uzgfkfnm6p.png?imageView2/2/w/1620)
接着设置编译目录为 /usr/local/erlang
![](https://ask.qcloudimg.com/http-save/yehe-1148397/d0rroynidi.png?imageView2/2/w/1620)
最后执行 make 和 make install 命令即可。
全部命令步骤为:
1、cd otp_src_R16B02
2、yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel gtk2-devel binutils-devel
3、./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll
4、make
5、make install
④、配置环境变量
通过 vim /etc/profile 命令进入文件,然后敲入如下代码
![](https://ask.qcloudimg.com/http-save/yehe-1148397/l8xr5ksu61.png?imageView2/2/w/1620)
最后通过如下命令使环境变量生效:
source /etc/profile
⑤、验证
在任意目录下输入 erl 命令,出现如下情况,则 erlang 安装成功:
![](https://ask.qcloudimg.com/http-save/yehe-1148397/b7u5qgom0p.png?imageView2/2/w/1620)
wget https://netix.dl.sourceforge.net/project/wxwindows/3.0.1/wxWidgets-3.0.1.tar.bz2
bzip2 -dkv wxWidgets-3.0.1.tar.bz2
tar -xvf wxWidgets-3.0.1.tar
cd wxWidgets-3.0.1/
./configure --with-opengl --enable-debug --enable-unicode
make && make install
报错:configure: error: OpenGL libraries not available
解决方法:
yum install mesa *
yum install freeglut*
解决报错直接运行 make && make install 来安装wxWidgets
然后在切换到erlang的安装目录下执行make && make install 来安装erlang
2、安装 RabbitMQ
①、下载安装包
创建 /home/rabbitmq 目录,在该目录下执行如下命令:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5.tar.gz
②、解压
tar -zxvf rabbitmq-server-3.1.5.tar.gz
③、编译安装
1 cd rabbitmq-server-3.1.5
2 yum -y install xmlto
3 make
4 make install TARGET_DIR=/opt/mq/rabbitmq SBIN_DIR=/opt/mq/rabbitmq/sbin MAN_DIR=/opt/mq/rabbitmq/man
将rabbitmq编译到/opt/mq/rabbitmq目录。
④、开启 web 插件
1 cd /opt/mq/rabbitmq/sbin
2 mkdir /etc/rabbitmq/
3 ./rabbitmq-plugins enable rabbitmq_management
3、启动和关闭RabbitMQ
1 启动监控管理器:rabbitmq-plugins enable rabbitmq_management
2 关闭监控管理器:rabbitmq-plugins disable rabbitmq_management
3 启动rabbitmq:rabbitmq-service start
4 关闭rabbitmq:rabbitmq-service stop
5 查看所有的队列:rabbitmqctl list_queues
6 清除所有的队列:rabbitmqctl reset
7 关闭应用:rabbitmqctl stop_app
8 启动应用:rabbitmqctl start_app
通过第 3 条命令启动rabbitmq 服务,然后在浏览器上输入
ip:15672
出现如下界面即可。其中 ip 是安装 rabbitmq 的机器ip地址,15672 是rabbitmq的默认端口。
ps:如果不能打开如下画面,可能是防火墙没有关闭。centos6 关闭防火墙命令:
关闭命令: service iptables stop 永久关闭防火墙:chkconfig iptables off 查看防火墙状态:service iptables status
![](https://ask.qcloudimg.com/http-save/yehe-1148397/cg7ffiwcow.png?imageView2/2/w/1620)
默认用户名和密码都是 guest。我们可以用 guest 是不能登陆的,需要重新创建用户并赋予角色,可参考链接:https://www.cnblogs.com/zongyl/p/5913808.html
![](https://ask.qcloudimg.com/http-save/yehe-1148397/m3azp2crxd.png?imageView2/2/w/1620)
默认用户guest 只允许localhost登录。
so... 我们自己建立用户
1. 用户管理
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
相应的命令
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users
2. 用户角色
按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
与administrator的对比,administrator能看到这些内容
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
设置用户角色的命令为:
rabbitmqctl set_user_tags User Tag
User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
也可以给同一用户设置多个角色,例如
rabbitmqctl set_user_tags hncscwc monitoring policymaker
3. 用户权限
用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。
相关命令为:
(1) 设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
(2) 查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath]
(3) 查看指定用户的权限信息
rabbitmqctl list_user_permissions User
(4) 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User