更新時間:2021-08-13 10:52:58 來源:動力節點 瀏覽885次
分而治之是一種常見的高并發系統設計方法,采用分布式部署的方式把流量分流開,讓每個服務器都承擔一部分并發和流量。
通過購買性能更好的硬件來提升系統的并發處理能力,比方說目前系統 4 核 4G 每秒可以處理 200 次請求,那么如果要處理 400 次請求呢?很簡單,我們把機器的硬件提升到 8 核 8G(硬件資源的提升可能不是線性的,這里僅為參考)。
使用緩存來提高系統的性能,就好比用“拓寬河道”的方式抵抗高并發大流量的沖擊
在某些場景下,未處理完成之前我們可以讓請求先返回,在數據準備好之后再通知請求方,這樣可以在單位時間內處理更多的請求
什么是同步
以方法調用為例,同步調用代表調用方要阻塞等待被調用方法中的邏輯執行完成。這種方式下,當被調用方法響應時間較長時,會造成調用方長久的阻塞,在高并發下會造成整體系統性能下降甚至發生雪崩。
什么是異步
異步調用恰恰相反,調用方不需要等待方法邏輯執行完成就可以返回執行其他的邏輯,在被調用方法執行完畢后再通過回調、事件通知等方式將結果反饋給調用方
高并發原則
無狀態設計:因為有狀態可能涉及鎖操作,鎖又可能導致并發的串行化
保持合理的粒度:無論拆分還是服務化,其實就是服務粒度控制,控制粒度為了分散請求提高并發,或為了從管理等角度提高可操性
緩存、隊列、并發等技巧在高并發設計上可供參考,但需依場景使用
高可用原則
本質訴求:高可用就是抵御不確定性,保證系統7*24小時健康服務
系統的任何發布必須具有可回滾能力
系統任何外部依賴必須準確衡量是否可降級,是否可無損降級,并提供降級開關
系統對外暴露的接口必須配置好限流,限流值必須盡量準確可靠
業務設計原則
安全性:防抓取,防刷單、防表單重復提交,等等等等。
at least 消費,應考慮是否采用冪等設計
業務流程動態化,業務規則動態化
系統owner負責制、人員備份制、值班制
系統文檔化
后臺操作可追溯
以上就是動力節點小編介紹的"高并發系統設計方法",希望對大家有幫助,想了解更多可查看Java在線學習。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習