这是 middleware/rabbitmq.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。
#1
2026-10-18
+62
−0
docs: 新增存储/中间件/自动化/云与K8s/证书/流程 6 个分类和 16 篇文章
e4d2cd0
new file mode 100644
@@ -0,0 +1,62 @@
+---
+tags: [RabbitMQ, 消息队列, 中间件]
+order: 30
+---
+
+# RabbitMQ 基础配置
+
+## 场景
+
+应用之间要做异步解耦,用 RabbitMQ 传递消息。
+
+## 前置条件
+
+- 一台 Linux(内存至少 4G)
+- 知道要建几个 vhost、哪些用户
+- 磁盘留足空间(消息会落盘)
+
+## 配置
+
+```bash
+dnf install -y rabbitmq-server
+systemctl enable --now rabbitmq-server
+
+# 管理界面
+rabbitmq-plugins enable rabbitmq_management
+
+# 建用户和 vhost
+rabbitmqctl add_user app 强密码
+rabbitmqctl add_vhost /app
+rabbitmqctl set_permissions -p /app app ".*" ".*" ".*"
+rabbitmqctl set_user_tags app monitoring
+
+# 看状态
+rabbitmqctl status
+rabbitmqctl list_queues -p /app name messages consumers
+```
+
+浏览器打开 `http://IP:15672`。
+
+## 验证
+
+```bash
+rabbitmqctl cluster_status
+rabbitmqctl list_connections
+rabbitmqctl list_queues -p /app
+```
+
+## 回滚
+
+```bash
+rabbitmqctl delete_vhost /app
+rabbitmqctl delete_user app
+```
+
+## 坑
+
+- **磁盘水位到了(默认 50G 或 50%)会阻塞生产者**,日志里是 `disk_free_limit`。
+- 内存水位默认 40%,超了也会阻塞,先调 `vm_memory_high_watermark` 或加内存。
+- 队列没有消费者,消息会一直堆,最后把磁盘写满。
+- `guest` 只能本机登录,远程连不上是正常的。
+- 节点名(`nodename`)改了会找不到数据目录,重装前先备份 `/var/lib/rabbitmq`。
+- 集群要求 Erlang cookie 一致,否则起不来。