最近工作中儲存伺服器由於壓力太大無法及時消費訊息、這個過程中,導致rabbitmq意外掛程式掉,無法訪問。下面是部分問題分析過程。
麒麟系統伺服器分析
1、伺服器異常資訊:
[root@localhost ~]# service rabbitmq-server statusstatus 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=10 ./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...