RabbitMQ常见问题

1. rabbitmq启动失败
修改主机名称后使用命令启动rabbitmq节点报错:

[root@centos72 ~]# RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit rabbitmq-server &
[1] 2889
[root@centos72 ~]# Activating RabbitMQ plugins ...

********************************************************************************
*WARNING* Undefined function global:safe_whereis_name/1
********************************************************************************

0 plugins activated:


+---+   +---+
|   |   |   |
|   |   |   |
|   |   |   |
|   +---+   +-------+
|                   |
| RabbitMQ  +---+   |
|           |   |   |
|   v2.7.0  +---+   |
|                   |
+-------------------+
AMQP 0-9-1 / 0-9 / 0-8
Copyright (C) 2007-2011 VMware, Inc.
Licensed under the MPL.  See http://www.rabbitmq.com/

node           : rabbit@centos72
app descriptor : /usr/local/rabbitmq_server-2.7.0/sbin/../ebin/rabbit.app
home dir       : /root
config file(s) : (none)
cookie hash    : EA2kofbz66IQpSOKqLWrJQ==
log            : /var/log/rabbitmq/rabbit.log
sasl log       : /var/log/rabbitmq/rabbit-sasl.log
database dir   : /var/lib/rabbitmq/mnesia/rabbit
erlang version : 5.10.3

-- rabbit boot start
starting file handle cache server                                     ...done
starting worker pool                                                  ...done
starting database                                                     ...BOOT ERROR: FAILED
Reason: {error,
            {timeout_waiting_for_tables,
                [rabbit_user,rabbit_user_permission,rabbit_vhost,
                 rabbit_listener,rabbit_durable_route,
                 rabbit_semi_durable_route,rabbit_route,rabbit_reverse_route,
                 rabbit_topic_trie_edge,rabbit_topic_trie_binding,
                 rabbit_durable_exchange,rabbit_exchange,
                 rabbit_exchange_serial,rabbit_durable_queue,rabbit_queue,
                 gm_group,mirrored_sup_childspec]}}
Stacktrace: [{rabbit_mnesia,wait_for_tables,1,[]},
             {rabbit_mnesia,check_schema_integrity,0,[]},
             {rabbit_mnesia,ensure_schema_integrity,0,[]},
             {rabbit_mnesia,init,0,[]},
             {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]},
             {rabbit,run_boot_step,1,[]},
             {rabbit,'-start/2-lc$^0/1-0-',1,[]},
             {rabbit,start,2,[]}]
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbit,{bad_return,{{rabbit,start,[normal,[]]},{'EXIT',{rabbit,failure_during_boot}}}}}"}

解释如下:

Alternatively, perhaps your mnesia dir (/var/lib/rabbitmq/mnesia/rabbit) 
got into a a weird state. Try clearing it. 

即分布式数据库mnesia异常。

解决:
(1) 将/var/lib/rabbitmq/mnesia/rabbit/下的数据库文件清空即可,具体清空哪个节点需要根据自己情况选择。
(2) 重启节点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ 是一个开源的消息队列中间件,常用于在分布式系统中进行消息传递。以下是一些 RabbitMQ 常见问题: 1. 什么是 RabbitMQRabbitMQ 是一个消息队列中间件,它实现了 AMQP(Advanced Message Queuing Protocol)协议,并提供了可靠的消息传递机制。 2. RabbitMQ 的主要特点是什么? RabbitMQ 的主要特点包括高度可靠性、灵活的路由机制、扩展性强、支持多种消息协议和模式、多种编程语言支持等。 3. 如何安装和配置 RabbitMQ? 你可以从 RabbitMQ 官方网站下载适合你操作系统的安装包,并按照官方文档进行安装和配置。 4. RabbitMQ 的主要组件是什么? RabbitMQ 的主要组件包括生产者(Producer)、消费者(Consumer)、交换机(Exchange)和队列(Queue)。 5. 如何发送和接收消息? 生产者可以将消息发送到交换机,交换机根据指定的路由规则将消息路由到队列中,然后消费者可以从队列中接收消息进行处理。 6. RabbitMQ 支持哪些消息模式? RabbitMQ 支持多种消息模式,包括点对点模式、发布/订阅模式、主题模式等,可以根据需求选择合适的模式。 7. RabbitMQ 如何处理消息丢失和重复消费的问题? RabbitMQ 提供了消息持久化机制,可以确保消息在发送和接收过程中的可靠性。此外,使用消息确认机制和幂等性操作可以避免消息重复消费的问题。 8. 如何监控和管理 RabbitMQRabbitMQ 提供了可视化的管理界面,在浏览器中访问管理界面可以查看和管理队列、交换机、连接等信息。此外,还可以使用 RabbitMQ 提供的 API 进行监控和管理。 这些是 RabbitMQ 的一些常见问题和基本概念,如果你有具体的问题或需要更详细的介绍,欢迎继续提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值