安装erlang,强烈推荐64位版本Erlang,两种方式:
- 1.下载文件安装:
https://bintray.com/rabbitmq/rpm/erlang
页面下载erlang-19.3.6.8-1.el7.centos.x86_64.rpm
,将文件上传至Centos,在文件所在目录使用指令yum install -y erlang-19.3.6.8-1.el7.centos.x86_64.rpm
安装erlang - 2.通过新建文件rabbitmq-erlang.repo安装erlang,引自
https://github.com/rabbitmq/erlang-rpm
# vi /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=1 # yum install -y erlang
- 1.下载文件安装:
安装Rabbitmq-server
http://www.rabbitmq.com/install-rpm.html
页面下载rabbitmq-server-3.7.4-1.el7.noarch.rpm
,上传至Centos,在文件目录使用指令yum install -y rabbitmq-server-3.7.4-1.el7.noarch.rpm
关闭防火墙或者添加外部访问端口5672和15672(用于页面管理访问)
- centos7使用firewalld作为默认防火墙,centos6使用iptables
systemctl status firewalld.service
查看firewalld服务的状态systemctl status iptables.service
查看iptables服务的状态systemctl stop firewalld.service
停止firewalldsystemctl stop iptables.service
停止iptables
- 防火墙开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
添加5672端口firewall-cmd --zone=public --add-port=15672/tcp --permanent
添加15672端口firewall-cmd --reload
重新载入
- centos7使用firewalld作为默认防火墙,centos6使用iptables
文件权限错误问题
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
访问控制台
- web插件安装:
rabbitmq-plugins enable rabbitmq_management
- 默认用户名和密码是guest/guest,但该用户只能用于本机访问,远程登陆会提示错误;解决方式
vi /etc/rabbitmq/rabbitmq.conf
添加一行loopback_users=none
,重启服务
- web插件安装:
操作指令
- 开机启动
systemctl enable rabbitmq-server.service
- 开启服务
rabbitmq-server start
- 后台运行服务
rabbitmq-server -detached
- 关闭服务
rabbitmqctl stop
- 创建用户
rabbitmqctl add_user admin admin
- 赋予角色
rabbitmqctl set_user_tags admin administrator
- 查看用户
rabbitmqctl list_users
- 开机启动
问题
java.lang.IOException
IO异常,详细信息为access to vhost '/' refused for user 'admin'
- 权限问题,新建的用户不能访问默认的vhost,可以通过页面或者指令添加用户访问vhost的权限。页面->admin->点击name栏的用户名称->Set permission
java.util.concurrent.TimeoutException
开启连接时,RabbitMQ uses the host name to communicate with nodes.
rabbitmqctl status
查看nodenameStatus of node rabbit@AWorkSpace2
vi /etc/hosts
添加一行127.0.0.1 localhost AWorkSpace2 AWorkSpace2.local
- 错误的原因在于:
This is especially important if your DHCP server gives you a host name starting with an IP address, (e.g., 23.10.112.31.comcast.net). In this case RabbitMQ will try to use rabbit@23: an illegal host name.
- 参考:
http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html