傳統(tǒng)應(yīng)用All in one的架構(gòu)導(dǎo)致資源利用率低、可擴(kuò)展性差、可靠性也無法得到保證。舉例:一個電商系統(tǒng),如果是All in one架構(gòu)下,大促來臨之前只能按照整系統(tǒng)的倍數(shù)去擴(kuò)展。而不能按照緩存擴(kuò)展5倍(登陸次數(shù)暴增)、 數(shù)據(jù)庫 擴(kuò)展2倍(實際的用戶數(shù)據(jù)增長約2倍)比例去擴(kuò)展。
這種封閉的架構(gòu),如果要做業(yè)務(wù)改動或新增業(yè)務(wù)模塊都是比較困難的,因為所有的模塊與數(shù)據(jù)庫都是直接串行交互的。整系統(tǒng)的可靠性也比較差,如果數(shù)據(jù)庫故障了,所有的業(yè)務(wù)流程都會受阻。增加了分布式消息隊列以后,可以將各個應(yīng)用模塊做解耦,當(dāng)某個業(yè)務(wù)模塊故障時,不影響與其并行操作的其他模塊。大大增強(qiáng)了系統(tǒng)的可靠性。