rabbitmq

RabbitMQ 服务启动与配置

补充说明

rabbitmq 是 AMQP 消息代理,负责队列、交换机、绑定和路由。服务端用 rabbitmq-server 启动,管理操作常用 rabbitmqctl 和管理插件。

常用示例

rabbitmq-server
rabbitmq-server -detached
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl status
rabbitmqctl cluster_status
rabbitmqctl list_queues name messages consumers
rabbitmqctl add_user app 'S3cret'
rabbitmqctl set_permissions -p /app app '.*' '.*' '.*'
# 4.0 起经典镜像队列(ha-mode)已移除,高可用队列改用 quorum 类型
# 队列声明时设置 {"x-queue-type":"quorum"},已有 classic 队列需重建后才能转换
rabbitmq-diagnostics check_running

常见配置

listeners.tcp.default = 5672
management.tcp.port = 15672
loopback_users.guest = false
vm_memory_high_watermark.relative = 0.6
disk_free_limit.absolute = 2GB

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 队列和消息都声明为持久化,是否就一定不丢消息?
  2. 生产者突然被阻塞,先查什么?
  3. 节点无法加入集群,常见的集群配置问题是什么?
答案
  1. 不一定,队列持久化、消息持久化、发布 confirm 是三件独立的事。
  2. 看 rabbitmqctl status 和内存/磁盘告警原因。
  3. Erlang cookie 不一致。