您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“數(shù)據(jù)庫軟件架構(gòu)演進分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“數(shù)據(jù)庫軟件架構(gòu)演進分析”吧!
應(yīng)用服務(wù)、數(shù)據(jù)庫、文件服務(wù)所有資源都放在一臺服務(wù)器上。
隨著系統(tǒng)訪問量的再度增加,應(yīng)用服務(wù)的機器壓力在高峰期會上升到比較高,這時候就開始考慮增加一臺應(yīng)用服務(wù)器所以開始把應(yīng)用服務(wù),數(shù)據(jù)庫,文件服務(wù)分布部署在獨立的資源上。
再隨著系統(tǒng)訪問特點出現(xiàn)了二八定律,80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上,這時候需要使用本地緩存數(shù)據(jù),遠程分布式緩存數(shù)據(jù),提高訪問數(shù)據(jù)速度,但是緩存的數(shù)據(jù)量有限,同時存在與應(yīng)用服務(wù)爭用內(nèi)存的情況。這樣數(shù)據(jù)庫中訪問較集中的一小部分數(shù)據(jù)存儲在緩存服務(wù)器中,建設(shè)數(shù)據(jù)庫的訪問次數(shù),降低數(shù)據(jù)庫的訪問壓力。
再之后做完數(shù)據(jù)庫的分庫分表后,數(shù)據(jù)庫的壓力已經(jīng)降低了,業(yè)務(wù)不斷成熟又開始每天看訪問量暴增,發(fā)現(xiàn)用戶訪問系統(tǒng)越來越慢,這時候就發(fā)現(xiàn)數(shù)據(jù)庫壓力一切正常,應(yīng)用服務(wù)后臺阻塞了很多服務(wù)請求,應(yīng)用服務(wù)器對每個請求也是比較快的,原因是請求的數(shù)量太高了,導(dǎo)致請求都在排隊等待,響應(yīng)速度變慢了。這樣開始使用多臺服務(wù)器通過負載均衡同時向外部提供服務(wù),解決單臺服務(wù)器處理能力和存儲空間上限的問題。使用集群解決系統(tǒng)高并發(fā),海量數(shù)據(jù)問題。通過向集群中追加資源,提升系統(tǒng)的并發(fā)處理能力,使得服務(wù)器的負載壓力不再成為整個系統(tǒng)的瓶頸。
系統(tǒng)訪問量高速增長后,慢慢發(fā)現(xiàn)系統(tǒng)又開始變慢了,發(fā)現(xiàn)數(shù)據(jù)庫寫入、更新的這些操作部分,數(shù)據(jù)庫連接的資源競爭激烈,導(dǎo)致系統(tǒng)變慢。我們需要引入主備部署。把數(shù)據(jù)庫劃分成讀庫和寫庫,通過引入主從數(shù)據(jù)庫服務(wù),讀和寫操作在不同的數(shù)據(jù)庫服務(wù)處理,讀庫可以有多個,通過同步機制把寫庫的數(shù)據(jù)同步到讀庫,對于需要查詢最新寫入數(shù)據(jù)場景,可以通過在緩存中多寫一份,通過緩存獲取最新數(shù)據(jù)。
采用CDN和反向代理加速系統(tǒng)的訪問速度,為了應(yīng)付復(fù)雜的網(wǎng)絡(luò)環(huán)境和不同地區(qū)用戶訪問,通過CDN和反向代理加快用戶訪問的速度,通過減輕后端服務(wù)器的負載壓力。CDN和反向代理都是緩存靜態(tài)資源。
隨著系統(tǒng)的不斷運行,數(shù)據(jù)量開始大幅度增長,這時候發(fā)現(xiàn)分庫后查詢?nèi)匀粫行┞?,于是?shù)據(jù)庫采用分布式,文件系統(tǒng)也采用分布式。因為單一服務(wù)都滿足不了大型系統(tǒng)用戶量和業(yè)務(wù)持續(xù)增長的需求,數(shù)據(jù)庫的讀寫分離也隨著業(yè)務(wù)發(fā)展最終也無法滿足需求,需要使用分布式數(shù)據(jù)庫以及分布式文件系統(tǒng)來支撐。常見數(shù)據(jù)庫拆分手段是業(yè)務(wù)分庫,根據(jù)不同的業(yè)務(wù)部署在不同的服務(wù)器上。
隨著業(yè)務(wù)越來越復(fù)雜,對數(shù)據(jù)存儲和檢索的需求也越來越復(fù)雜,系統(tǒng)需要采用一些非關(guān)系型數(shù)據(jù)庫(NOSQL,搜索引擎)來實現(xiàn)。應(yīng)用服務(wù)通過統(tǒng)一數(shù)據(jù)訪問模塊訪問各種數(shù)據(jù),減輕應(yīng)用服務(wù)管理諸多數(shù)據(jù)源的麻煩。
系統(tǒng)按照業(yè)務(wù)進行拆分改造,應(yīng)用服務(wù)器按照業(yè)務(wù)區(qū)分進行分別部署。為了應(yīng)用日益復(fù)雜的業(yè)務(wù)場景,通常使用分而治之的手段將整個系統(tǒng)業(yè)務(wù)分廠不同的產(chǎn)品線,應(yīng)用之間通過連接建立關(guān)系,也可以通過消息進行數(shù)據(jù)分發(fā),通過訪問同一個數(shù)據(jù)存儲來構(gòu)建一個關(guān)聯(lián)的完整系統(tǒng)。通過縱向拆分應(yīng)用服務(wù),將一個大應(yīng)用拆分為多個小應(yīng)用,如果新的業(yè)務(wù)較為獨立,那么就直接將其設(shè)計部署為一個獨立的web應(yīng)用系統(tǒng),通過梳理業(yè)務(wù),將較少相關(guān)的業(yè)務(wù)剝離出來即可。通過橫向拆分,將復(fù)用的業(yè)務(wù)拆分出來,獨立部署為分布式服務(wù),新增業(yè)務(wù)只需要調(diào)用這些分布式服務(wù),需要識別出可以復(fù)用的業(yè)務(wù),設(shè)計服務(wù)接口,規(guī)范服務(wù)依賴關(guān)系。
公共的應(yīng)用模塊被提取出來,部署在分布式服務(wù)器上供應(yīng)用服務(wù)調(diào)用。隨著業(yè)務(wù)越拆越小,應(yīng)用系統(tǒng)整體復(fù)雜程度指數(shù)級別上升,由于所有應(yīng)用要和所有的數(shù)據(jù)庫連接,最終導(dǎo)致數(shù)據(jù)庫連接資源又不足了,拒絕服務(wù)訪問。當服務(wù)越來越多,服務(wù)URL配置管理變得非常困難,負載均衡器的單節(jié)點壓力越來越大。
當進一步發(fā)展,服務(wù)間依賴關(guān)系變得錯中復(fù)雜,甚至分不清哪個應(yīng)用要在哪個應(yīng)用之前啟動,架構(gòu)師也不能完整描述應(yīng)用的架構(gòu)關(guān)系。 服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題暴露,每個服務(wù)需要多少臺機器支撐,什么時候應(yīng)該加機器。 服務(wù)多了,溝通成本也開始上升,調(diào)用某個服務(wù)失敗該找誰,服務(wù)的參數(shù)都有什么約定。 一個服務(wù)有多個業(yè)務(wù)消費者,如果確保服務(wù)質(zhì)量,隨著服務(wù)的不停升級,總有些意想不到的事情發(fā)生,比如cache寫錯了導(dǎo)致內(nèi)存溢出,故障不可避免,每次核心服務(wù)一掛,影響一大片,如何控制故障的影響面,服務(wù)是否可以功能降級或者資源劣化。針對以上問題,微服務(wù)架構(gòu)可以一定程度解決。
到此,相信大家對“數(shù)據(jù)庫軟件架構(gòu)演進分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。