RabbitMQ 消息队列 安装及使用
RabbitMQ 消息队列安装:
linux版本:CentOS 7
安装第一步:先关闭防火墙
1、Centos7.x关闭防火墙
[root@rabbitmq /]# systemctl stop firewalld.service [root@rabbitmq /]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
如果不想关闭防火墙,可以通过如下方法处理:
开放5672端口: firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --reload
第二步:安装Erlang
由于RabbitMQ依赖Erlang, 所以需要先安装Erlang。
Erlang的安装方式大概有两种:
1)从Erlang Solution安装(推荐)
# 添加erlang solutions源 $ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm $ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm $ sudo yum install erlang
2)从EPEL源安装(这种方式安装的Erlang版本可能不是最新的,有时候不能满足RabbitMQ需要的最低版本)
# 启动EPEL源 $ sudo yum install epel-release # 安装erlang $ sudo yum install erlang
安装第三步:安装RabbitMQ
$ sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc $ wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm # 下载RabbitMQ安装包 $ sudo yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
注意:安装时如果遇到下面的依赖错误
Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel) Requires: libreadline.so.5()(64bit)
可以尝试先执行:$ sudo yum install socat
至此,如果没有报错的话,RabbitMQ已经安装成功!此时我们需要测试RabbitMQ是否可以正常使用。
测试:
1、开启服务及查看工作状态
$ rabbitmq-server #启动RabbitMQ队列
$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务 $ sudo /sbin/service rabbitmq-server start # 启动服务 $ sudo /sbin/service rabbitmq-server status # 查看服务状态 $ sudo /sbin/service rabbitmq-server stop # 停止服务
$ netstat -tulnp |grep rabbitmq #查看默认启用的端口号,5672
2、关于RabbitMQ的一些基本操作
# 查看当前所有用户 $ sudo rabbitmqctl list_users
$ rabbitmqctl list_queues #查看当前的消息队列列表
# 查看默认guest用户的权限 $ sudo rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 $ sudo rabbitmqctl delete_user guest # 添加新用户 $ sudo rabbitmqctl add_user username password # 设置用户tag $ sudo rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限 $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限 $ sudo rabbitmqctl list_user_permissions username 更多关于rabbitmqctl的使用,可以参考帮助手册。
3、开启web管理接口
如果只从命令行操作RabbitMQ,多少有点不方便。幸好RabbitMQ自带了web管理界面,只需要启动插件便可以使用。
$ sudo rabbitmq-plugins enable rabbitmq_management 然后通过浏览器访问 http://localhost:5672 输入用户名和密码访问web管理界面了。
4、配置RabbitMQ
关于RabbitMQ的配置,可以下载RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config, 然后按照需求更改即可。
关于每个配置项的具体作用,可以参考官方文档。
更新配置后,别忘了重启服务哦!
5、开启用户远程访问
默认情况下,RabbitMQ的默认的guest用户只允许本机访问, 如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可,如下:
{loopback_users, []}
另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin用户本机访问。
{loopback_users, ["admin"]}
更新配置后,别忘了重启服务哦!