關於分佈式架構的思考

1 概述

分佈式系統就是利用一組機器來協同工作,並對外提供統一的服務。

分佈式架構的核心,在於拆分。


2 分佈式數據架構

2.1 垂直拆分

按照業務將數據拆分成不同的庫;

如sns網站中日誌與照片可以分成兩個數據庫。


2.2 讀寫分離

一般是主從架構,主庫用於寫,從庫用於讀;

主從之間需要同步機制來保證數據的一致性。


2.3 水平拆分

按照數據的特點將全量的數據拆分成不同的分區,並分佈到指定的庫中;

如sns網站中的日誌/照片等信息是按照userID來組織的,因此可以根據userID將數據拆分到不同的庫中,其中關鍵是制定路由規則,就是如何根據userID來找到對應的數據庫。


2.4 總結

數據庫層面的分佈式架構,可以分別從業務+讀寫+數據分區等3個維度來拆分數據。


3 分佈式應用架構

3.1 均衡負載

利用均衡負載服務器將請求分發到不同的服務器來處理,其中關鍵的是路由規則。


3.2 獨立的session服務

應用是有狀態的,他的狀態是保存在session中。如果你的路由規則是隨機分發請求的話,則需要提供獨立的session服務,如將session保存在數據庫或緩存中,不要保存在本地文件或內存中。如果你的路由是根據ip來分發請求的話,則由於某個ip的請求總是分發到同一個服務器中,因此session可以保存到本地。


3.3 總結

應用層面的分佈式架構,主要是多copy+均衡負載+獨立的session服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章