系統設計 如何讓系統容易擴充套件?

2021-10-08 03:06:33 字數 500 閱讀 8970

乙個高可擴充套件性指標,表示可以通過增加機器的方式來線性提高系統的處理能力,從而承擔更高的流量或者併發數。

在單機系統中通過增加處理核心數來增加系統的並行處理能力,但是這個方法並不總生效,隨著並行的任務增多,系統會因為爭奪資源而達到效能上的拐點。系統效能會不公升反降。

多台機器組成的機器系統也類似,在集群系統中,不同的分層也存在一些瓶頸。制約橫向擴充套件能力。

舉個例子,系統的流量是每秒1000次請求,對資料庫請求也是 1000次/s ,單獨如果流量增加10倍,系統可以擴容,正常提供服務,但是資料庫就成了瓶頸。

再個例子,單機網路的頻寬是50mbps ,如果擴容到 30臺機器,前端負載均衡頻寬超過了1000mbps 限制,那麼也會成為瓶頸。

無狀態的服務和元件更容易擴充套件,但是資料庫這樣的儲存服務是有狀態的,不易擴充套件。

資料庫,快取,依賴的第三方,負載均衡,交換機頻寬,都是系統擴充套件性的一些因素。

拆分是系統擴充套件性的最重要的思路,把龐大的系統進行拆分,有單一職責的模組,將複雜的問題簡單化。

系統設計 如何使用快取

一 引言 在構建和維護業務服務應用時,大多數情況下業務系統的效能瓶頸往往是在資料庫,解決應用到資料庫之間瓶頸,系統的效能會得到極大提公升。系統的資料庫效能優化方法有很多 從底層到上層有資料庫模型設計,sql優化,使用快取等等。從圖中的優化模式來看,其中資料庫模型設計的合理程度奠定了應用系統優化的基石...

基於RBAC模型的許可權設計 如何設計系統許可權體系?

通過rbac建立後台許可權體系。什麼是許可權體系呢,比如,在系統中a分站的使用者不能看到b分站的資料,業務員能看到自己的資料而看不到其他業務員的資料,業務經理可以看到所有業務員的資料,業務經理和財務經理擁有的功能許可權又不相同,這些場景,都是通過許可權控制完成的。對於後台產品,一定是多使用者多角色多...

系統架構擴充套件設計

基於訊息或者基於協議的設計優於基於物件的設計在基於訊息和協議上的系統 可以進行二次的架構設計,而基於物件的設計比較難於比如說實現gate 服務或前他 通用服務,在gate服務中接入所有請求進行日誌記錄,使用者鑑權,token等操作。這樣能方便的擴充套件,基於類似dubbo 以及jsf協議的框架,這樣...