docker rabbitmq 宕机 无反应 不消费消息

编程入门 行业动态 更新时间:2024-10-26 20:27:17

docker rabbitmq 宕机 无反应 不消费<a href=https://www.elefans.com/category/jswz/34/1771421.html style=消息"/>

docker rabbitmq 宕机 无反应 不消费消息

问题

今天遇到了rabbitmq宕机,具体现象是java publisher发送消息后,consumer没有收到消息,publisher也没有报错(未使用ack机制);于是重启docker(rabbitmq装在docker中),重启失败,查看日志出现

2022-11-10 08:11:22.831 [info] <0.44.0> Application rabbit exited with
reason:{{could_not_write_file,“/var/lib/rabbitmq/mnesia/rabbit@5d259b8e06a1/cluster_nodes.config”,enospc},{rabbit,start,[normal,[]]}}
{“Kernel pid
terminated”,application_controller,“{application_start_failure,rabbit,{{could_not_write_file,”/var/lib/rabbitmq/mnesia/rabbit@5d259b8e06a1/cluster_nodes.config",enospc},{rabbit,start,[normal,[]]}}}"}
08:17:58.111 [warning] Failed to write PID file
“/var/lib/rabbitmq/mnesia/rabbit@5d259b8e06a1.pid”: no space left on
device

查看日志方法

导出log, docker logs contianerId > log.file
或者 查看最新log

docker logs -f --tail=100 containerId 
  • -f
    • 如果有新日志到达,则输出
  • –tail
    • 输出最近的100行

看样子是磁盘没有空间了

执行docker info,找到根路径

Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry:/

查看根路径所在磁盘的使用率,Use已经100%,说明磁盘没有空间了。

[root@xxx ~]# df -h /var/lib/docker
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   40G   0  100% /

将没用的日志,删除释放空间,然后rabbitmq重启,就好了。

fix后的一些思考

跟踪日志发现,早在前一天就已经出现警告,警告的意思是磁盘空间不足,如果不修正,那么publisher会被阻塞,不能发送。经查阅资料得知,默认的rabbitmq达到物理内存的40%、或者磁盘空间不足50M时,就会发出警告,阻塞publisher发布消息。

**********************************************************
*** Publishers will be blocked until this alarm clears ***
**********************************************************
2022-11-09 19:13:11.675 [info] <0.437.0> Free disk space is sufficient. Free bytes: 51777536. Limit: 50000000
2022-11-09 19:13:11.675 [warning] <0.433.0> disk resource limit alarm cleared on node rabbit@5d259b8e06a1
2022-11-09 19:13:11.675 [warning] <0.433.0> disk resource limit alarm cleared across the cluster
2022-11-09 20:40:10.980 [info] <0.437.0> Free disk space is insufficient. Free bytes: 49848320. Limit: 50000000
2022-11-09 20:40:10.980 [warning] <0.433.0> disk resource limit alarm set on node rabbit@5d259b8e06a1.

du -sh查看的是文件所占用的大小,比如

[root@xxx lib]# du -sh /var/lib/docker
4.4G	/var/lib/docker

df -h查看的是,磁盘使用情况

[root@xxx lib]# df -h /var/lib/docker
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   12G   27G  31% /

而df查看的是全部磁盘使用情况

[root@xxx lib]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  1.1M   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/vda1        40G   12G   27G  31% /
tmpfs           3.1G     0  3.1G   0% /run/user/0
overlay          40G   12G   27G  31% /var/lib/docker/overlay2/584601df5d3aa8130909fd7f333bcfbff75c774a3ec363bff1be43e1f89e4508/merged
overlay          40G   12G   27G  31% /var/lib/docker/overlay2/87076bd5e7d8d907952d91a01582ef8197135cae69868d17df4932a7e2abe75d/merged
overlay          40G   12G   27G  31% /var/lib/docker/overlay2/e09ecced1347db602ad05103abf50b3fb305e62ee86729dd6dff52bec88dbaba/merged
overlay          40G   12G   27G  31% /var/lib/docker/overlay2/3854314a6cff111d497813c01517e5c6be4429dca9d1ed6a3deca4e3f477b318/merged

启动的docker是4个,所以有4条overlay记录;每一条都是12G指的是所在磁盘已经使用12G,而不是每一条占用12G

更多推荐

docker rabbitmq 宕机 无反应 不消费消息

本文发布于:2023-11-16 07:08:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1614087.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:消息   docker   rabbitmq   宕机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!