歡迎來(lái)到深圳市志博科技有限公司網站!
您當前的(de)位置:深圳APP開發 > 新聞資訊 > APP開發資訊 >
人(rén)
已閱讀

大(dà)型項目APP開發如何做(zuò)好高(gāo)并發

來(lái)源:lexintech.com       發布時(shí)間:2019-05-17
APP開發中,一般小項目對(duì)高(gāo)并發的(de)要求不是很高(gāo),但是對(duì)于一些用(yòng)戶量大(dà)的(de)大(dà)型項目,對(duì)系統高(gāo)并發的(de)支持就要重視了(le)。業務從發展的(de)初期到逐漸成熟,服務器架構也(yě)是從相對(duì)單一到集群,再到分(fēn)布式服務。一個(gè)可(kě)以支持高(gāo)并發的(de)服務少不了(le)好的(de)服務器架構,需要有均衡負載,數據庫需要主從集群,nosql緩存需要主從集群,靜态文件需要上傳cdn,這(zhè)些都是能讓業務程序流暢運行的(de)強大(dà)後盾。
 
高(gāo)并發相關的(de)業務,需要進行并發的(de)測試,通(tōng)過大(dà)量的(de)數據分(fēn)析評估出整個(gè)架構可(kě)以支撐的(de)并發量。
測試高(gāo)并發可(kě)以使用(yòng)第三方服務器或者自己測試服務器,利用(yòng)測試工具進行并發請求測試,分(fēn)析測試數據得(de)到可(kě)以支撐并發數量的(de)評估,這(zhè)個(gè)可(kě)以作爲一個(gè)預警參考,俗話(huà)說知己自彼百戰不殆。
 
在一個(gè)訂單處理(lǐ)的(de)場(chǎng)景中,服務器架構如下(xià)圖所示:
大(dà)型項目APP開發如何做(zuò)好高(gāo)并發
場(chǎng)景中的(de)這(zhè)些業務基本是用(yòng)戶進入APP後會操作到的(de),除了(le)活動日(618,雙11,等),這(zhè)些業務的(de)用(yòng)戶量都不會高(gāo)聚集,同時(shí)這(zhè)些業務相關的(de)表都是大(dà)數據表,業務多(duō)是查詢操作,所以我們需要減少用(yòng)戶直接命中DB的(de)查詢;優先查詢緩存,如果緩存不存在,再進行DB查詢,将查詢結果緩存起來(lái)。
更新用(yòng)戶相關緩存需要分(fēn)布式存儲,比如使用(yòng)用(yòng)戶ID進行hash分(fēn)組,把用(yòng)戶分(fēn)布到不同的(de)緩存中,這(zhè)樣一個(gè)緩存集合的(de)總量不會很大(dà),不會影(yǐng)響查詢效率。
 
以上例子是一個(gè)相對(duì)簡單的(de)高(gāo)并發架構,并發量不是很高(gāo)的(de)情況可(kě)以很好的(de)支撐,但是随著(zhe)業務的(de)壯大(dà),用(yòng)戶并發量增加,我們的(de)架構也(yě)會進行不斷的(de)優化(huà)和(hé)演變,比如對(duì)業務進行服務化(huà),每個(gè)服務有自己的(de)并發架構,自己的(de)均衡服務器,分(fēn)布式數據庫,nosql主從集群,如:用(yòng)戶服務、訂單服務。
 
對(duì)于更新頻(pín)繁度不高(gāo)的(de)數據,APP,PC浏覽器,可(kě)以緩存數據到本地,然後每次請求接口的(de)時(shí)候上傳當前緩存數據的(de)版本号,服務端接收到版本号判斷版本号與最新數據版本号是否一緻,如果不一樣就進行最新數據的(de)查詢并返回最新數據和(hé)最新版本号,如果一樣就返回狀态碼告知數據已經是最新。
 
APP開發 網站開發 産品設計 微信公衆号 APP開發公司 用(yòng)戶體驗 APP運營 微信小程序 産品經理(lǐ) 網站設計