MQ實戰(zhàn) | RocketMQ不同可用區(qū)導(dǎo)致消費不均衡
一、現(xiàn)象反饋
業(yè)務(wù)同學(xué)反饋有個服務(wù)在部署容器后不間斷收到積壓告警,該服務(wù)對積壓敏感,影響派單的時效性。原來部署到ECS上的服務(wù)沒有積壓情況,準(zhǔn)備往容器遷移。下面是業(yè)務(wù)同學(xué)做的排除測試,另外容器當(dāng)前在J/K可用區(qū)部署,而MQ集群部署在B/G/F區(qū)。
- 回退到原ECS部署積壓消失
- 在原可用區(qū)申請擴容ECS未出現(xiàn)積壓
- 在新的可用區(qū)J/K申請ECS出現(xiàn)積壓
備注: 很明顯該積壓與可用區(qū)有關(guān)系。
二、積壓監(jiān)控
在遷移容器的過程中,同時有容器消費和ECS消費的節(jié)點,通過分區(qū)積壓進行對比。
ECS消費分區(qū)積壓監(jiān)控
備注: 明顯ECS的節(jié)點沒有什么積壓。
容器消費分區(qū)積壓監(jiān)控
備注: 積壓較多的分區(qū)分布在容器節(jié)點。
三、可用區(qū)耗時監(jiān)控
J/F可用區(qū)延遲
G/B/K可用區(qū)延遲
備注: J/K區(qū)的延遲比其他可用區(qū)多0.5ms左右。
四、解決措施
既然由于可用區(qū)延遲引起,可以考慮一下幾種措施:
1.將MQ集群遷移到J/K可用區(qū)
由于其他可用區(qū)還有重要業(yè)務(wù),明顯不可行。
2.將容器發(fā)布部署非J/K可用區(qū)
容器可以相對考慮可用區(qū)的均衡性,但是難以避免不同可用區(qū)混部,也不太可行。
3.提高消費能力
通過提高部署容器節(jié)點和增加消費線程池大小來提高消費能力可以起到立竿見影的效果。
本文轉(zhuǎn)載自微信公眾號「瓜農(nóng)老梁」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系瓜農(nóng)老梁公眾號。