java後端系統架構總論篇
本篇為java後端系統架構總論,總體概述系統架構要求與解決思路。
交易性系統概述
java後端系統是以事務為劃分邊界的軟體系統,系統要求保持資料事務性與原子性。交易性系統有如下特點:
1. 高併發量,低延遲。系統要求能負載高峰時段的並行壓力,並且能滿足在足夠短的時間內響應。
2. 分散式。系統要求可以水平方向增加或者減少主機例項來完成系統伸縮。當一臺web主機例項,已經負載不了現網線上使用者的請求併發,通過增加一臺web例項能夠得到有效緩解。
3. 資料一致性。分散式的系統,對於資料在各個分割槽內,需保持資料一致性。使用者修改的資料,在每一次請求落在不同主機例項上時,需要保持資料的一致性。
4. 無單點故障與故障恢復。對於現有執行的結點例項失敗後,能夠有新的結點例項快帶補上,做到有狀態資訊不丟失,資料資訊不丟失等。
5. 隔離性。要求系統中部署的應用例項間不會相互影響,當在發生問題時,讓這種影響發生更小。例如:不同例項爭搶cpu時間片,一個程序直接影響其它程序有效執行。某分割槽結點的不可用,也不會影響其它使用者的正常使用。
6. 負載均衡。根據不同主機的壓力負載,分發使用者的請求。
7. 安全。防ddos攻擊等,一般由硬體層面處理,軟體業務層面做一些控制。
8. 可運維。系統關鍵業務點,有相應的監控與管理功能。
交易性系統架構設想
後端業務系統:是社群電商系統大後端系統,各系統按各自的業務目的建設。各內部架構比較多樣化,不擴開討論。
靜態檔案:是圖片,js,css等檔案資源的總稱。
資料庫:是mysql,oracle等資料庫原方案總稱
訊息佇列:為服務治理層與各後端業務系統的資訊交易通道。但不是所有服務治量層的業務服務都會使用訊息佇列。也可以是基它基於http的請求協議的rpc呼叫。
查詢快取:服務治理層、web層都有。它們主要是快取一些反覆查詢的資料,從而減少對後端資料庫的壓力。