溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

分布式大數(shù)據(jù)高并發(fā)的web開發(fā)框架怎么理解

發(fā)布時間:2022-01-14 15:25:11 來源:億速云 閱讀:115 作者:柒染 欄目:云計算

分布式大數(shù)據(jù)高并發(fā)的web開發(fā)框架怎么理解,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

分布式大數(shù)據(jù)高并發(fā)的web開發(fā)框架

一、引言

通常我們認為靜態(tài)網(wǎng)頁html的網(wǎng)站速度是最快的,但是自從有了動態(tài)網(wǎng)頁之后,很多交互數(shù)據(jù)都從數(shù)據(jù)庫查詢而來,數(shù)據(jù)也是經(jīng)常變化的,除了一些新聞資訊類的網(wǎng)站,使用html靜態(tài)化來提高訪問速度是不太現(xiàn)實的方案。我們不得不在代碼與數(shù)據(jù)庫之間尋求一種更合適的解決方案。

減少數(shù)據(jù)庫訪問次數(shù),文件和數(shù)據(jù)庫分離,大數(shù)據(jù)分布式存儲,服務(wù)器的集群負載均衡,頁面緩存的使用,nosql內(nèi)存數(shù)據(jù)庫代替關(guān)系型數(shù)據(jù)庫,這些方案措施都是提高系統(tǒng)高并發(fā)性能的關(guān)鍵,下面一一分解。

二、分解

(1)      分布式服務(wù)器集群

A) 文件服務(wù)器集群

圖片、視頻、其他下載文件,它們的下載通常是占用網(wǎng)絡(luò)帶寬的罪惡魁首,這些資源一定要獨立放在帶寬好的文件服務(wù)器上,能提供http協(xié)議訪問地址使用,不至于在下載文件時影響web服務(wù)器的cpu運算。

文件服務(wù)器最好使用磁盤陣列中心存儲,比如阿里云提供的文件云服務(wù)器,這樣使用簡單,使用多大帶寬多大存儲空間選擇就好了。

如果沒有中心存儲,也可以做文件服務(wù)器集群,如下圖

分布式大數(shù)據(jù)高并發(fā)的web開發(fā)框架怎么理解

說白了就是每個文件服務(wù)器都安裝一個簡單的web api作為文件傳輸和訪問的接口,可以手動分配服務(wù)器地址給 web 程序使用,當然也可以做一層簡單的負載均衡器供web程序統(tǒng)一接口調(diào)用。

需要注意的是:web api 接口上傳文件結(jié)果一定要返回特定服務(wù)器完整的http文件下載地址,這個地址要存入數(shù)據(jù)庫。

文件服務(wù)器的數(shù)量:文件服務(wù)器之間都相對獨立,沒有數(shù)據(jù)關(guān)聯(lián),因此數(shù)量的多少主要是看帶寬的承載量和硬盤空間的大小,動態(tài)擴展服務(wù)器后,只需把服務(wù)器地址加入 web程序的調(diào)用列表即可達到無限擴展容量的機制。

B) Web服務(wù)器集群

不管是windows系統(tǒng),還是linux系統(tǒng),單臺服務(wù)器的性能和資源都是有限的,支持的連接并發(fā)數(shù)都有上限,因此必須采用多服務(wù)器集群的方法才能提高連接并發(fā)數(shù)。連接并發(fā)數(shù)的容量計算也很容易:

  連接并發(fā)數(shù)= 服務(wù)器1并發(fā)數(shù)+服務(wù)器2并發(fā)數(shù)+……+ 服務(wù)器n并發(fā)數(shù)

當然,我們不能都給每臺web服務(wù)器分配一個域名地址訪問,肯定是同一個域名同一個入口,例如百度后面有成百上千臺web服務(wù)器,但是我們都是使用 www.baidu.com 一個入口,至于這個入口會自動給我們分配一臺web服務(wù)器訪問,我們不會在意這臺web服務(wù)器的具體地址是多少,這就是負載均衡器的作用。

分布式大數(shù)據(jù)高并發(fā)的web開發(fā)框架怎么理解

在硬件充裕的情況下,mongodb集群建議采用多副節(jié)點的集群模式,不僅提高訪問性能,也保證了數(shù)據(jù)安全完整性能。

Gemfire內(nèi)存數(shù)據(jù)庫

Gemfire是很多年前就已經(jīng)商業(yè)化了的nosql內(nèi)存數(shù)據(jù)庫,經(jīng)過了多家大型機構(gòu)的使用考驗,更幸運的是,在2015年4月發(fā)布其開源版本Geode,可能在不久的將來得到更廣泛的使用。

除了開源nosql內(nèi)存數(shù)據(jù)庫,國內(nèi)外的巨頭都已經(jīng)在研究自己的內(nèi)存數(shù)據(jù)庫,比如oracle, ibm , 阿里等等,nosql內(nèi)存數(shù)據(jù)庫大有代替關(guān)系型數(shù)據(jù)庫的趨勢。

朋友們可以去研究每個內(nèi)存數(shù)據(jù)庫的優(yōu)劣勢,不管使用那種產(chǎn)品,我們無非就是解決兩個問題:1、內(nèi)存數(shù)據(jù)庫保證快速訪問;2、服務(wù)器集群存儲大數(shù)據(jù)。至于如何搭建環(huán)境大家可以查找相關(guān)資料。

(2)      負載均衡器

負載均衡服務(wù)器分為硬件均衡服務(wù)器和軟件均衡服務(wù)器,目的就是統(tǒng)一提供一個訪問入口來訪問服務(wù)器集群,并且能夠動態(tài)監(jiān)控每個服務(wù)器的負載,把新的用戶請求轉(zhuǎn)給負載小的服務(wù)器。

硬件服務(wù)器就是直接購買獨立的服務(wù)器作為負載均衡服務(wù)器,例如阿里云已經(jīng)提供。

軟件服務(wù)器使用具有代理功能的軟件作為轉(zhuǎn)發(fā)服務(wù)器,比如Nginx,HAProxy,LVS 等等,具體安裝部署大家可以搜索相關(guān)資料。

(3)      緩存技術(shù)

從上面我們可以看出,web服務(wù)器與數(shù)據(jù)庫服務(wù)器是分布在不同的服務(wù)器上的,也就是web程序從數(shù)據(jù)庫獲取數(shù)據(jù)時,通過網(wǎng)絡(luò)tcp/ip協(xié)議進行網(wǎng)絡(luò)數(shù)據(jù)傳輸,當查詢的數(shù)據(jù)量過大時,網(wǎng)絡(luò)帶寬速率很可能變?yōu)槠款i,高并發(fā)在線時,將會很大影響整體系統(tǒng)的效率。

我們使用緩存技術(shù)解決這個問題。這里就涉及到相關(guān)業(yè)務(wù)了,一般來說,我們根據(jù)具體的業(yè)務(wù),把數(shù)據(jù)分為兩類:

1、 一類是不經(jīng)常變的數(shù)據(jù),比如表結(jié)構(gòu),公共設(shè)置數(shù)據(jù),省市縣名錄等等,這些數(shù)據(jù)我們將會作為永久緩存數(shù)據(jù),我們將會一次性讀取數(shù)據(jù)庫全部記錄緩存到web服務(wù)器本地長久保存,并且定時檢測數(shù)據(jù)庫是否有更新的數(shù)據(jù),如果有更新,則再更新本地緩存數(shù)據(jù);

2、 另一類是經(jīng)常變的數(shù)據(jù),對于這種數(shù)據(jù),需要每次讀取時都從數(shù)據(jù)庫讀取,往往這類數(shù)據(jù)也包含海量的數(shù)據(jù),讀取數(shù)據(jù)庫時將不能一次性讀取,只能分頁讀取,緩存數(shù)據(jù)保存的時間也不宜太長。

緩存的工具也很多,比如 .net里自帶的MemoryCache,java 的有 ehcache ,都是比較出名的緩存。

三、綜合

綜上所述,我們就可以設(shè)計我們的整體方案圖如下:

 

四、開發(fā)框架

ErpCore是一套強大的快速開發(fā)框架,集數(shù)據(jù)庫設(shè)計、軟件建模、模型自動生成、界面可視化設(shè)計、業(yè)務(wù)流可自定義、全自動生成用戶所需系統(tǒng)于一體。在此框架上擴展出所有行業(yè)的業(yè)務(wù)系統(tǒng),它讓軟件工程師從“建模——寫代碼——測試”所有繁瑣重復的工作變?yōu)槿詣踊桑蟠蠛喕似髽I(yè)軟件的開發(fā)時間和成本。

1、自動建模

  框架內(nèi)部帶有虛擬數(shù)據(jù)庫系統(tǒng),用戶可在虛擬數(shù)據(jù)庫上創(chuàng)建表、字段、表間關(guān)聯(lián),企業(yè)根據(jù)自己的具體業(yè)務(wù)需求構(gòu)建合適的數(shù)據(jù)庫架構(gòu),即通過自動化實現(xiàn)銷售業(yè)務(wù)人員將能完成DBA的工作。業(yè)務(wù)流程將變成企業(yè)自定義。

2、自定義對象

  對應(yīng)于虛擬數(shù)據(jù)庫上創(chuàng)建表、字段、表間關(guān)聯(lián),用戶可自定義對象、對象屬性、對象關(guān)聯(lián)。奠定了可以擴展出符合所有行業(yè)所有業(yè)務(wù)系統(tǒng)可能性。

3、窗體表單可視化設(shè)計

  通過拖拽拉的方式,業(yè)務(wù)人員即可創(chuàng)建軟件使用界面,把界面關(guān)聯(lián)起來即可實現(xiàn)不用編碼就能創(chuàng)建所需的業(yè)務(wù)系統(tǒng)。

4、全自動創(chuàng)建子系統(tǒng)

  管理員在后臺通過創(chuàng)建對象、創(chuàng)建窗體,并集成成一個子系統(tǒng),普通使用人員就能使用子系統(tǒng)進行工作,不需額外開發(fā)工作。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI