高并發(fā)多線程競(jìng)爭(zhēng)共享資源架構(gòu)
發(fā)布時(shí)間:2021-08-11 09:48
針對(duì)目前高并發(fā)場(chǎng)景下多線程競(jìng)爭(zhēng)共享資源出現(xiàn)的系統(tǒng)性能問題以及共享資源不一致性等問題,提出一種基于數(shù)據(jù)緩存、分布式鎖、消息隊(duì)列、負(fù)載均衡4種技術(shù)的高性能系統(tǒng)架構(gòu)。采用Redis集群實(shí)現(xiàn)數(shù)據(jù)高速緩存和分布式鎖操作,利用消息隊(duì)列實(shí)現(xiàn)通信異步和流量削峰,LVS和Nginx實(shí)現(xiàn)高可用的負(fù)載均衡。實(shí)驗(yàn)結(jié)果表明,該架構(gòu)能有效提升系統(tǒng)性能,保證共享資源的安全性和一致性。
【文章來源】:計(jì)算機(jī)工程與設(shè)計(jì). 2020,41(11)北大核心
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
系統(tǒng)架構(gòu)
現(xiàn)代Web系統(tǒng)一般都會(huì)采用緩存策略對(duì)直接進(jìn)行數(shù)據(jù)庫(kù)讀寫的傳統(tǒng)數(shù)據(jù)操作方式進(jìn)行改進(jìn)。緩存大致主要分為兩種:頁(yè)面緩存和數(shù)據(jù)緩存。架構(gòu)基于Redis集群實(shí)現(xiàn)數(shù)據(jù)緩存,具有故障容錯(cuò)等功能。Redis完全基于內(nèi)存,通過Key-Value存儲(chǔ)能獲得良好的性能,尤其表現(xiàn)在良好的并行讀寫性能[10]。由于投票容錯(cuò)機(jī)制要求超過半數(shù)節(jié)點(diǎn)認(rèn)為某個(gè)節(jié)點(diǎn)出現(xiàn)故障才會(huì)確定該節(jié)點(diǎn)下線,因此Redis集群至少需要3個(gè)節(jié)點(diǎn),為了保證集群的高可用性,每個(gè)主節(jié)點(diǎn)都有從節(jié)點(diǎn)。實(shí)現(xiàn)Redis集群拓?fù)浣Y(jié)構(gòu)如圖2所示。Redis集群由6臺(tái)服務(wù)器搭建,分別由3個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)組成,數(shù)據(jù)都是以Key-Value形式存儲(chǔ),不同分區(qū)的數(shù)據(jù)存放在不同的節(jié)點(diǎn)上,類似于哈希表的結(jié)構(gòu)。使用哈希算法將Key映射到0-16383范圍的整數(shù),一定范圍內(nèi)的整數(shù)對(duì)應(yīng)的抽象存儲(chǔ)稱為槽,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一定范圍內(nèi)的槽,槽范圍如圖3所示。
Redis集群由6臺(tái)服務(wù)器搭建,分別由3個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)組成,數(shù)據(jù)都是以Key-Value形式存儲(chǔ),不同分區(qū)的數(shù)據(jù)存放在不同的節(jié)點(diǎn)上,類似于哈希表的結(jié)構(gòu)。使用哈希算法將Key映射到0-16383范圍的整數(shù),一定范圍內(nèi)的整數(shù)對(duì)應(yīng)的抽象存儲(chǔ)稱為槽,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一定范圍內(nèi)的槽,槽范圍如圖3所示。集群?jiǎn)?dòng)時(shí),會(huì)先從數(shù)據(jù)庫(kù)服務(wù)器讀取高并發(fā)請(qǐng)求中頻繁訪問的數(shù)據(jù),其中包括共享資源數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為JSON數(shù)據(jù)格式或?qū)ο笮蛄谢跏蓟絉edis服務(wù)器中,數(shù)據(jù)會(huì)根據(jù)哈希算法新增到對(duì)應(yīng)的節(jié)點(diǎn)中。應(yīng)用服務(wù)器接收到高并發(fā)請(qǐng)求進(jìn)行數(shù)據(jù)查詢、修改或刪除時(shí),會(huì)隨機(jī)把命令發(fā)給某個(gè)節(jié)點(diǎn),節(jié)點(diǎn)計(jì)算并查看這個(gè)key是否屬于自己的,如果是自己的就進(jìn)行處理,并將結(jié)果返回,如果是其它節(jié)點(diǎn)的,會(huì)把對(duì)應(yīng)節(jié)點(diǎn)信息(IP+地址)轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器,讓應(yīng)用服務(wù)器重定向訪問。Redis返回結(jié)果后,應(yīng)用服務(wù)器會(huì)將數(shù)據(jù)發(fā)送到消息隊(duì)列服務(wù)器中,并立即將返回結(jié)果給客戶端。
【參考文獻(xiàn)】:
期刊論文
[1]高并發(fā)考勤系統(tǒng)的性能優(yōu)化研究與實(shí)現(xiàn)[J]. 馮洋陽(yáng). 電子設(shè)計(jì)工程. 2019(18)
[2]高并發(fā)Web電商系統(tǒng)的設(shè)計(jì)與優(yōu)化[J]. 黃芝龍,徐莉莎,瞿少成. 計(jì)算機(jī)與數(shù)字工程. 2019(07)
[3]Nginx負(fù)載均衡技術(shù)的研究[J]. 梁劍. 太原師范學(xué)院學(xué)報(bào)(自然科學(xué)版). 2019(02)
[4]WEB前端性能優(yōu)化[J]. 孫光懿,賈英霞. 鄂州大學(xué)學(xué)報(bào). 2019(03)
[5]Redis分布式緩存實(shí)現(xiàn)與解析[J]. 周智. 信息通信. 2018(06)
[6]基于Kafka消息隊(duì)列的新一代分布式電量采集方法研究[J]. 金雙喜,李永,吳驊,武文廣,李俊臣,張新艷. 智慧電力. 2018(02)
[7]基于分布式消息隊(duì)列的企業(yè)級(jí)全文檢索模型研究[J]. 李政,武彤. 計(jì)算機(jī)應(yīng)用與軟件. 2017(06)
[8]基于Nginx和Redis高并發(fā)web服務(wù)負(fù)載均衡的研究[J]. 蒲曉陽(yáng). 內(nèi)江科技. 2016(01)
[9]支持透明集成的數(shù)據(jù)緩存機(jī)制[J]. 王彥士,王偉,劉朝輝,魏峻,黃濤. 計(jì)算機(jī)研究與發(fā)展. 2015(04)
碩士論文
[1]基于關(guān)系型數(shù)據(jù)庫(kù)中SQL語(yǔ)句優(yōu)化規(guī)則的研究[D]. 龔成鵬.新疆大學(xué) 2019
[2]高并發(fā)電商評(píng)論系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 朱輝輝.南京大學(xué) 2019
[3]高并發(fā)銀行代收費(fèi)網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 王婷.西安電子科技大學(xué) 2018
[4]基于Zookeeper的分布式范圍鎖的設(shè)計(jì)與實(shí)現(xiàn)[D]. 趙玉京.華中科技大學(xué) 2015
本文編號(hào):3335942
【文章來源】:計(jì)算機(jī)工程與設(shè)計(jì). 2020,41(11)北大核心
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
系統(tǒng)架構(gòu)
現(xiàn)代Web系統(tǒng)一般都會(huì)采用緩存策略對(duì)直接進(jìn)行數(shù)據(jù)庫(kù)讀寫的傳統(tǒng)數(shù)據(jù)操作方式進(jìn)行改進(jìn)。緩存大致主要分為兩種:頁(yè)面緩存和數(shù)據(jù)緩存。架構(gòu)基于Redis集群實(shí)現(xiàn)數(shù)據(jù)緩存,具有故障容錯(cuò)等功能。Redis完全基于內(nèi)存,通過Key-Value存儲(chǔ)能獲得良好的性能,尤其表現(xiàn)在良好的并行讀寫性能[10]。由于投票容錯(cuò)機(jī)制要求超過半數(shù)節(jié)點(diǎn)認(rèn)為某個(gè)節(jié)點(diǎn)出現(xiàn)故障才會(huì)確定該節(jié)點(diǎn)下線,因此Redis集群至少需要3個(gè)節(jié)點(diǎn),為了保證集群的高可用性,每個(gè)主節(jié)點(diǎn)都有從節(jié)點(diǎn)。實(shí)現(xiàn)Redis集群拓?fù)浣Y(jié)構(gòu)如圖2所示。Redis集群由6臺(tái)服務(wù)器搭建,分別由3個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)組成,數(shù)據(jù)都是以Key-Value形式存儲(chǔ),不同分區(qū)的數(shù)據(jù)存放在不同的節(jié)點(diǎn)上,類似于哈希表的結(jié)構(gòu)。使用哈希算法將Key映射到0-16383范圍的整數(shù),一定范圍內(nèi)的整數(shù)對(duì)應(yīng)的抽象存儲(chǔ)稱為槽,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一定范圍內(nèi)的槽,槽范圍如圖3所示。
Redis集群由6臺(tái)服務(wù)器搭建,分別由3個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)組成,數(shù)據(jù)都是以Key-Value形式存儲(chǔ),不同分區(qū)的數(shù)據(jù)存放在不同的節(jié)點(diǎn)上,類似于哈希表的結(jié)構(gòu)。使用哈希算法將Key映射到0-16383范圍的整數(shù),一定范圍內(nèi)的整數(shù)對(duì)應(yīng)的抽象存儲(chǔ)稱為槽,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一定范圍內(nèi)的槽,槽范圍如圖3所示。集群?jiǎn)?dòng)時(shí),會(huì)先從數(shù)據(jù)庫(kù)服務(wù)器讀取高并發(fā)請(qǐng)求中頻繁訪問的數(shù)據(jù),其中包括共享資源數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為JSON數(shù)據(jù)格式或?qū)ο笮蛄谢跏蓟絉edis服務(wù)器中,數(shù)據(jù)會(huì)根據(jù)哈希算法新增到對(duì)應(yīng)的節(jié)點(diǎn)中。應(yīng)用服務(wù)器接收到高并發(fā)請(qǐng)求進(jìn)行數(shù)據(jù)查詢、修改或刪除時(shí),會(huì)隨機(jī)把命令發(fā)給某個(gè)節(jié)點(diǎn),節(jié)點(diǎn)計(jì)算并查看這個(gè)key是否屬于自己的,如果是自己的就進(jìn)行處理,并將結(jié)果返回,如果是其它節(jié)點(diǎn)的,會(huì)把對(duì)應(yīng)節(jié)點(diǎn)信息(IP+地址)轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器,讓應(yīng)用服務(wù)器重定向訪問。Redis返回結(jié)果后,應(yīng)用服務(wù)器會(huì)將數(shù)據(jù)發(fā)送到消息隊(duì)列服務(wù)器中,并立即將返回結(jié)果給客戶端。
【參考文獻(xiàn)】:
期刊論文
[1]高并發(fā)考勤系統(tǒng)的性能優(yōu)化研究與實(shí)現(xiàn)[J]. 馮洋陽(yáng). 電子設(shè)計(jì)工程. 2019(18)
[2]高并發(fā)Web電商系統(tǒng)的設(shè)計(jì)與優(yōu)化[J]. 黃芝龍,徐莉莎,瞿少成. 計(jì)算機(jī)與數(shù)字工程. 2019(07)
[3]Nginx負(fù)載均衡技術(shù)的研究[J]. 梁劍. 太原師范學(xué)院學(xué)報(bào)(自然科學(xué)版). 2019(02)
[4]WEB前端性能優(yōu)化[J]. 孫光懿,賈英霞. 鄂州大學(xué)學(xué)報(bào). 2019(03)
[5]Redis分布式緩存實(shí)現(xiàn)與解析[J]. 周智. 信息通信. 2018(06)
[6]基于Kafka消息隊(duì)列的新一代分布式電量采集方法研究[J]. 金雙喜,李永,吳驊,武文廣,李俊臣,張新艷. 智慧電力. 2018(02)
[7]基于分布式消息隊(duì)列的企業(yè)級(jí)全文檢索模型研究[J]. 李政,武彤. 計(jì)算機(jī)應(yīng)用與軟件. 2017(06)
[8]基于Nginx和Redis高并發(fā)web服務(wù)負(fù)載均衡的研究[J]. 蒲曉陽(yáng). 內(nèi)江科技. 2016(01)
[9]支持透明集成的數(shù)據(jù)緩存機(jī)制[J]. 王彥士,王偉,劉朝輝,魏峻,黃濤. 計(jì)算機(jī)研究與發(fā)展. 2015(04)
碩士論文
[1]基于關(guān)系型數(shù)據(jù)庫(kù)中SQL語(yǔ)句優(yōu)化規(guī)則的研究[D]. 龔成鵬.新疆大學(xué) 2019
[2]高并發(fā)電商評(píng)論系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 朱輝輝.南京大學(xué) 2019
[3]高并發(fā)銀行代收費(fèi)網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 王婷.西安電子科技大學(xué) 2018
[4]基于Zookeeper的分布式范圍鎖的設(shè)計(jì)與實(shí)現(xiàn)[D]. 趙玉京.華中科技大學(xué) 2015
本文編號(hào):3335942
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3335942.html
最近更新
教材專著