前面我們已經提到單個伺服器再優化,它的處理能力都是有上限的,因此我們選擇多擴容以及使用緩存和消息隊列等對程式進行優化。 下麵介紹另一種方法,隨著項目需求完成越來越多,應用自然也會越來越大,架構師將一個應用整體拆分成多個應用。 拆分的原則: 1.業務優先,確定業務邊界 2.循序漸進,邊拆分邊測試 3. ...
前面我們已經提到單個伺服器再優化,它的處理能力都是有上限的,因此我們選擇多擴容以及使用緩存和消息隊列等對程式進行優化。 下麵介紹另一種方法,隨著項目需求完成越來越多,應用自然也會越來越大,架構師將一個應用整體拆分成多個應用。 拆分的原則: 1.業務優先,確定業務邊界 2.循序漸進,邊拆分邊測試 3.兼顧技術:重構、分層 4.可靠測試 拆分的思考: 1.應用之間的通信:RPC(dubbo等)、消息隊列 消息傳輸適用於傳輸數據包小但是數據量大,對實時性要求不高的場景。比如下單成功後通過簡訊通知用戶。而選用RPC框架實時性更高一些。 而不會適用http、webservice等方法,因為RPC配置好之後和本地調用很像。 2.應用之間的資料庫設計:每個應用都有獨立的資料庫 3.避免事務操作跨應用,分散式事務是一個非常消耗資源的問題。這樣應用和應用的耦合度降低。

