項目間使用RabbitMQ進行消息的傳遞,RabbitMQ服務器搭建在linux服務器上。該服務器上同時安裝了Mysql。
問題的起因是發現消息的消費者不再接收消息了,然后我就去登陸RabbitMQ的前端維護界面去查看,發現所有的Queue都處于blocking狀態,被阻斷了,消息自然就不發送了。
知道原因之后,我就去google為什么queue會被阻斷,網上的說法是磁盤占用空間太大導致的。根據這個提示,我使用
df -h
命令查看了Linux 的磁盤空間,發現RabbitMQ所在的磁盤空間使用率99%,只剩余100多M的空間。RabbitMq為了保護進程,選擇了阻斷queue,使服務器不能再接發消息。
很自然的,我為了讓服務能盡快跑起來,我將temp文件夾下將近700M的無用文件刪除,RabbitMQ服務就正常使用了。
這種方式治標不治本,我重新瀏覽了一邊RabbitMQ數據存放的磁盤,發現Mysql的數據也存放在該盤下,立馬想到,如果以后數據持續增加,還會出現這個問題??紤]要將Mysql的數據存放文件更換位置。
最后完成Mysql的數據文件轉移,釋放了15G的空間。問題得到解決。