大型的App后臺在面對海量用戶的高并發(fā)訪問量和海量數(shù)據(jù)的存儲需求時.無論配置多么高級,一臺服務(wù)器到了一定的階段后總會沒法滿足需要,深圳APP開發(fā)公司認為這時就要考慮使用多臺服務(wù)器提供服務(wù)??缮炜s是指通過往集群中添加機器,應(yīng)付不斷增大的訪問壓力和數(shù)據(jù)存儲需求。
對于應(yīng)用服務(wù)器而言,可伸縮性是指當訪問量增大后,往集群中添加服務(wù)器。用戶通過負載均衡設(shè)備分發(fā)請求到集群中的服務(wù)器,使每臺服務(wù)器分擔集群中不斷增大的訪問量。應(yīng)用層實現(xiàn)可伸縮的前提是應(yīng)用服務(wù)器是無狀態(tài)的,即應(yīng)用服務(wù)器不保存用戶的信息,用戶請求分發(fā)到任意一臺服務(wù)器都是對等的。數(shù)據(jù)存儲的可伸縮性分為文件數(shù)據(jù)的可伸縮性、緩存數(shù)據(jù)的可伸縮性、數(shù)據(jù)庫的可伸縮性。
文件數(shù)據(jù)的可伸縮性,使用分布式文件存儲軟件很容易實現(xiàn)。以分布式文件存儲軟件Fastdfsh例,當發(fā)現(xiàn)集群中的文件容量快到瓶頸時,有下面兩個方法可以增加集群的文件容量。
·在某臺服務(wù)器上添加硬盤,就能給集群擴容。如果使用的是UCloud等云服務(wù)器,其提供了給云服務(wù)器添加云硬盤的服務(wù),通過簡單的幾步操作就能把個新硬盤掛載到云服務(wù)器,無須停機,保證服務(wù)不停止。
·在集群中添加服務(wù)器,F(xiàn)astdfs內(nèi)部檢測到新的服務(wù)器后,會把文件保存在新的服務(wù)器上。
緩存數(shù)據(jù)實現(xiàn)可伸縮.由于添加了新的服務(wù)器會導(dǎo)致之前的路由失效,造成大多數(shù)緩存都沒法命中。雖然可以把數(shù)據(jù)重新加裁到緩存,但這段時間緩存失效會造成數(shù)據(jù)請求的壓力直接達到相關(guān)的存儲層,造成存儲層壓力過大甚至宕機。因此,可以通過改進的路由算法(例如一致性Hash算法)減少添加服務(wù)器造成的路由失效情況。緩存失效和致性Hash算法的詳細描述,可查看本站前面所分享的緩存架構(gòu)的演進”一節(jié)。
關(guān)于數(shù)據(jù)庫的可伸縮性,分為關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫的可擴展性。
MvSQL使用分庫可實現(xiàn)可伸縮性,但MySQL原生是不支持分庫的。MySQL通過Amoeba和Cobar,或者是新興起的MvCat等關(guān)系型數(shù)據(jù)庫的分布式處理系統(tǒng),就能實現(xiàn)分庫。關(guān)于MySQL分庫的詳細描述,可查看本站前面相關(guān)經(jīng)驗介紹。
NoSQL數(shù)據(jù)庫天生就是為了分布式存儲沒計的,很簡單就能實現(xiàn)伸縮性。例如,NoSQL數(shù)據(jù)庫MongoDB使用分片策略就能實現(xiàn)伸縮性。關(guān)于MongoDB分片功能的詳細描述,可查看本站前面相關(guān)文章。
APP架構(gòu)升級之可擴展
在移動互聯(lián)網(wǎng)時代,App的一個重要特點是迭代的速度非???,可能新的產(chǎn)品出來后,連用戶從界面上部看不出是以前的那個App,App快速迭代的特點注定了需求是多變的,可擴展性就是關(guān)注在需求多變的情況下怎樣對現(xiàn)在的架構(gòu)影響最少。
可擴展性的核心是減少模塊間的耦合度,每個模塊都盡量少依賴其他模塊,這樣其中一個模塊的變化對其他模塊的影響減少。實現(xiàn)可擴展性有下面的3種方式。
·消息隊列:生產(chǎn)者(某個業(yè)務(wù)模塊)將消息放到消息隊列,消費者(另外的業(yè)務(wù)模塊)將消息從消息隊列中取出來進行處理。通過動態(tài)增減消息,再加上消息的生產(chǎn)者和消費者分離的方法,就能降低模塊間的耦合程度。
·分布式服務(wù):把業(yè)務(wù)中可復(fù)用的模塊抽離成個獨立的服務(wù),對其他模塊提供可復(fù)用的服務(wù),通過分布式服務(wù)框架供其他模塊調(diào)用。新增的業(yè)務(wù)通過調(diào)用可復(fù)用的服務(wù)實現(xiàn)其需要的業(yè)務(wù)邏輯,減少了開發(fā)量。當可復(fù)用的服務(wù)需要改變其業(yè)務(wù)邏輯時,由于其他模塊都是調(diào)用同一個可復(fù)用服務(wù),可使代碼的修改量減到最少。
·開放式API:從商業(yè)的角度來說,把自身的業(yè)務(wù)封裝成開放式API供其他開發(fā)者調(diào)用,也是實現(xiàn)系統(tǒng)可擴展性的個重要方法。國外的Facebook、Twit ter,國內(nèi)的淘寶、騰訊、微博等企業(yè),大量的開發(fā)者基于其開放式API創(chuàng)建了海量應(yīng)用,極大豐富了產(chǎn)品平臺。
APP架構(gòu)升級之安全性
安全性就是保證用戶的核心數(shù)據(jù)不被非法人員盜竊。
國內(nèi)外發(fā)生的多宗用戶的核心數(shù)據(jù)泄露事件,給相關(guān)的App帶來了極壞的影響,導(dǎo)致大量用戶流失。
對于和金錢交易相關(guān)的App,安全性更為重要,如果因為安全問題造成用戶的金錢損失,輕則用戶流失,嚴重則會引起法律糾紛。好了,APP開發(fā)公司本文關(guān)于大型APP平臺升級架構(gòu)時需要注意哪些方面?的經(jīng)驗就分享到這里,希望能給您幫助,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。