RabbitMQ訊息佇列阻塞導致伺服器宕機

2022-06-20 00:57:07 字數 1583 閱讀 1325

最近工作中儲存伺服器由於壓力太大無法及時消費訊息、這個過程中,導致rabbitmq意外掛程式掉,無法訪問。下面是部分問題分析過程。

麒麟系統伺服器分析

1、伺服器異常資訊:

[root@localhost ~]# service rabbitmq-server status

status of node rabbit@localhost ...

error: unable to connect to node rabbit@localhost: nodedown

diagnostics

**********=

attempted to contact: [rabbit@localhost]

rabbit@localhost:

* connected to epmd (port 4369) on localhost

* epmd reports: node 'rabbit' not running at all

no other nodes on localhost

* suggestion: start the node

current node details:

- node name: 'rabbitmq-cli-90@localhost'

- home dir: /var/lib/rabbitmq

- cookie hash: hikcax9bq+wszej6vemyxw==

2、檢視伺服器轉態:df -h   根目錄空間用完了。

[root@localhost /]# df -h

檔案系統 容量 已用 可用 已用% 掛載點

devtmpfs 1.9g 0 1.9g 0% /dev

tmpfs 1.9g 84k 1.9g 1% /dev/shm

tmpfs 1.9g 97m 1.8g 6% /run

tmpfs 1.9g 0 1.9g 0% /sys/fs/cgroup

/dev/sda1 1014m 174m 841m 18% /boot

tmpfs 380m 16k 380m 1% /run/user/42

3.繼續排查,通過:du -h -x --max-depth=1 一步步發現queue太大問題:系統總共50g、資源已被消耗完。

[root@localhost rabbit@localhost]# du -h -x --max-depth=1

0 ./msg_store_persistent

46g ./queues

12k ./msg_store_transient

)。基於此問題,最終通過redis、多執行緒優化了儲存伺服器,減少資料庫頻繁查詢開銷,提公升儲存伺服器消費能力。

訊息佇列Rabbitmq

rabbitmq server rabbitmqctl reset rabbitmqctl stop rabbitmqctl stop rabbitmqctl list users rabbitmqctl list queues rabbitmqctl add user user name user...

訊息佇列RabbitMQ

這是乙個很嚴肅的問題。系統之間解除耦合,可以讓不同語言編寫的系統通訊互動 保證伺服器負載不會飆公升。高大上一點就是流量削峰。讓程式變成非同步,提高響應速度。把費時任務放到另乙個程序或執行緒去執行。redis實現 剛開始學習redis時,一看這個鍊錶不就是給佇列準備的嗎?所以,一心扎進去,要寫個佇列出...

RabbitMQ訊息佇列

訊息發布接收流程 接收訊息 工作模式 publish subscribe 發布訂閱模式 發布訂閱publish subscribe和工作模式work queues的區別 routing 路由模式 區別 topics 區別 header 宣告佇列 bean queue inform sms publi...