1、启动时报错
- 问题描述:
使用rabbitmq-server -detached命令启rabbitmq时,提示Warning: PID file not written; -detached was passed
- 问题原因:
PID文件已经存在或未权限
- 解决方案:
删除PID文件重启服务,或者给PID所在的目录添加权限
2、执行rabbitmq命令报错
- 问题描述:
修改Hostname文件后,使用rabbitmq命令,均会报错,提示如下:
Cluster status of node rabbit@web2 ...Error: unable to connect to node rabbit@web2: nodedownDIAGNOSTICS===========attempted to contact: [rabbit@web2]rabbit@web2:* connected to epmd (port 4369) on web2* epmd reports node 'rabbit' running on port 25672* TCP connection succeeded but Erlang distribution failed* Hostname mismatch: node "rabbit@mq2" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@mq2"
- 问题原因:
修改主机名后,rabbitmq依旧使用旧主机名进行状态检查,故检查失败
安装完成后,使用http://ip:15672发现web端无法打开
- 问题原因:
rabbitmq的web端并非默认启用,为Rabbitmq一个模块,因此需要单独启用
应用服务器内网连接RabbitMQ报错,报错信息如下:
Exception in thread "main" java.net.NoRouteToHostException: No route to host (Host unreachable)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
- 问题原因:
RabbitMQ IP地址错误导致连接失败
- 解决方案:
确认RabbitMQ服务器IP,并使用telnet测试连通性
4.2、rabbitmq端口错误
- 问题描述:
应用服务器内网连接RabbitMQ报错,报错信息如下:
Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
- 问题原因:
RabbitMQ 端口地址错误导致连接失败
- 解决方案:
确认RabbitMQ服务器IP和端口,并使用telnet测试连通性
4.3、验证信息错误
- 问题描述:
应用服务器内网连接RabbitMQ报错,报错信息如下:
Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For detailssee the broker logfile.at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:351)at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)
- 问题原因:
RabbitMQ 用户名密码错误导致连接失败
- 解决方案:
确认RabbitMQ服务器用户名密码,并使用java -cp .:rabbitmq-tutorial.jar Send IP 5672 user *测试连通性
5、RabbitMQ脑裂问题
- 问题描述:
RabbitMQ使用中异常,报错信息如下:
Network partition detected
Mnesia reports that this RabbitMQ cluster has experienced a network partition. There is a risk of losing data. Please read RabbitMQ documentation about network partitions and the possible solutions.
- 问题原因:
因网络中断或其他原因导致连接断开,导致RabbitMQ连接异常
- 解决方案:
6、授权失败
- 问题描述:
应用使用RabbitMQ过程中报错,报错信息如下:
Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException
connection reset
- 问题原因:
rabbitmq默认仅有guest用户,且此用户对于队列没有管理权限
- 解决方案:
在rabbitmq web控制台添加新用户,并赋予管理队列的权限。
7、安装错误
7.1、案例一
- 问题描述:
在Centos7中安装erlang报错依赖检测失败
- 问题原因:
erlang存在系统环境依赖,需要先安装依赖环境
解决方案:
yum install epel-release yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl7.2、案例二
问题描述:
在Centos7中安装erlang报错依赖检测失败,报错erlang >= 19.3 被 rabbitmq-server-3.7.8-1.el7.noarch
- 问题原因:
需要erlang版本>=19.3,然而默认yum仓库中的版本较低,通过以下途径解决
- 解决方案:
vim /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
