Rabbit安装配置问题

1. 权限问题

Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'guest', class-id=10, method-id=40)
    at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-4.0.2.jar:4.0.2
]
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32) ~[amqp-client-4.0.2.jar:4.0.2]
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:366) ~[amqp-client-4.0.2.jar:4.0.2]
    at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:229) ~[amqp-client-4.0.2.jar:4.0.2]
    at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:117) ~[amqp-client-4.0.2.jar:4.0.2]
    ... 13 common frames omitted

这种问题用户没有权限需要 添加权限
添加权限有两种

  1. 在dos命令中设置

rabbitmqctl set_permissions -p / guest '.* ' ' .* ' '.*'

显示Setting permissions for user "guest" in vhost "/" 表明设置权限成功

2.在后台控制台输入
输入前需要添加rabbit的插件
后台管理开启方法

rabbitmq-plugins enable rabbitmq_management
重启rabbitmq服务生效
打开http://localhost:15672/即可看到管理后台
用户名密码均为guest
输入http://127.0.0.1:15672进入后台

image.png

找到你自己的用户
点击名字

image.png
image.png

输入框中内容如图所示即可。

ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'order-delay-queue' in vhost '/': received 'false' but current is 'true', class-id=50, method-id=10)

表示你order-delay-queue队列,已经创建运行,但是你告诉rabbit的是它没有创建。原因在于‘

image.png

需要将此队列删除并且对应代码为


代码rabbit官方文档中有

2.延时队列报错

ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message', class-id=40, method-id=10)

代表没有找到对应x-delayed-message的exchange type
rabbit官方github地址

image.png

说明你要是用延时队列需要启用插件
首先在dos命令中输入文档中的命令显示error(错误信息为没有发现对应插件)则需要到rabbit官网下载插件
插件地址
找到这个插件

插件地址

下载下来冰晶插件复制到rabbit-service的插件目录(自己的安装目录)中

image.png

并且在dos命令中再次运行

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

就可以了

3. error: unable to connect to node rabbit@: nodedown

rabbitmq版本过低问题

当前有些阿里云服务器阿里源对应的rabbit的版本为3.5.X版本,但现在官网延迟插件对应的最低版本为3.6.X
解决方案:

  1. 手动安装最新版(如果不想手动则使用第二种)
  1. 添加源 echo 'deb http://www.rabbitmq.com/debian/ testing main' | tee /etc/apt/sources.list.d/rabbitmq.list 然后执行 apt-get update 会安装3.6.15的版本

4. # epmd reports: node 'rabbit' not running at all?

remove /var/log/rabbitmq/* and start it back

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 整体架构 部署步骤 基于 Docker 基本概念内存节点只保存状态到内存,例外情况是:持久的 queue 的内容将...
    mvictor阅读 12,824评论 5 30
  • rabbitmq有3种模式,集群模式2种• 单机模式:即单机情况不做集群,就单独运行一个rabbitmq而已。...
    嗷大彬彬阅读 4,100评论 1 9
  • 来源 RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控...
    jiangmo阅读 10,433评论 2 34
  • 关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时...
    预流阅读 585,753评论 51 787