天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

分布式Redis高可用集群的設(shè)計(jì)與實(shí)現(xiàn)

發(fā)布時(shí)間:2021-10-09 08:25
  Redis作為高效率的Key-Value數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),支持多種類型的存儲(chǔ)方式與數(shù)據(jù)操作,加之其協(xié)議類型簡(jiǎn)單,被廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)及緩存中。對(duì)于大數(shù)據(jù)量業(yè)務(wù)場(chǎng)景下,必然需要部署多個(gè)Redis實(shí)例解決單物理機(jī)下的內(nèi)存瓶頸,目前Redis官方的推出的Redis Cluster集群方案雖然可以實(shí)現(xiàn)部署多個(gè)Redis實(shí)例,但是其復(fù)雜性過(guò)高難以維護(hù)和升級(jí),不適合生產(chǎn)環(huán)境。本文在大數(shù)據(jù)量、高并發(fā)業(yè)務(wù)場(chǎng)景下對(duì)Redis集群進(jìn)行需求分析,根據(jù)Redis的特性,調(diào)研對(duì)比當(dāng)前Redis分布式集群的主流產(chǎn)品,使用了代理模式進(jìn)行數(shù)據(jù)分片,設(shè)計(jì)并實(shí)現(xiàn)了分布式高可用的Redis集群方案。該方案中設(shè)計(jì)了Proxy代理層,由Proxy對(duì)外提供了統(tǒng)一的調(diào)用接口,屏蔽了底層Redis集群的具體細(xì)節(jié)。Proxy可以通過(guò)部署多實(shí)例和負(fù)載均衡實(shí)現(xiàn)高可用,并使用ZooKeeper作為Proxy多實(shí)例的配置中心存放路由信息,實(shí)現(xiàn)多Proxy實(shí)例的數(shù)據(jù)一致性。文中主要描述了Proxy代理層的設(shè)計(jì)與實(shí)現(xiàn),Proxy分為四個(gè)模塊:NetIO模塊,Proxy的網(wǎng)絡(luò)框架;Packet Handler模塊,對(duì)Redis通信協(xié)議解析處理;ZKR... 

【文章來(lái)源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校

【文章頁(yè)數(shù)】:81 頁(yè)

【學(xué)位級(jí)別】:碩士

【部分圖文】:

分布式Redis高可用集群的設(shè)計(jì)與實(shí)現(xiàn)


圖1.1客戶端分片??

數(shù)據(jù)分片,路由信息,第三方,實(shí)例


是基于服務(wù)器進(jìn)行分片的,通過(guò)Slot數(shù)據(jù)結(jié)構(gòu)進(jìn)行分片,將所有的數(shù)據(jù)劃分到??0-16383?(共16384)個(gè)Slot上,每個(gè)請(qǐng)求根據(jù)Key值進(jìn)行CRC16計(jì)算哈希值??映射到0-16383的某個(gè)Slot上[周曉場(chǎng),2018]。計(jì)算Slotld代碼如圖1.3所示:??slotld?=?crc16(key)?%?16384;??圖?1.3?Redis?Cluster?計(jì)算?Slotld??計(jì)算出Slotld后,由于一個(gè)Slot對(duì)應(yīng)一個(gè)底層Redis實(shí)例,一個(gè)Redis實(shí)??例分?jǐn)偅保叮常福磦€(gè)Slot的一■部分,根據(jù)Slot與Redis的映射關(guān)系,四配到特定的??Redis實(shí)例。當(dāng)客戶端連接到其中一臺(tái)Redis實(shí)例上發(fā)送命令請(qǐng)求,Redis實(shí)例??首先進(jìn)行命令解析,獲取請(qǐng)求的Key值,然后計(jì)算出Key對(duì)應(yīng)的Slot,如果該??Slot不屬于當(dāng)前Redis實(shí)例,Redis會(huì)返回給客戶端一個(gè)moved命令,并告訴??客戶端正確的路由信息。??Redis?Cluster優(yōu)點(diǎn)在與不需要借助第三方代理實(shí)現(xiàn)路由轉(zhuǎn)發(fā),在服務(wù)器端??進(jìn)行數(shù)據(jù)分片,需要在客戶端進(jìn)行重定向[Huang?etal.,?2016],造成能略微下降。??Redis?Cluster可以平滑的進(jìn)行動(dòng)態(tài)擴(kuò)容和縮容

流程圖,主從數(shù)據(jù)庫(kù),主從同步,寫(xiě)命令


Redis?Slave,?Slave將rdb文件鏡像加載到內(nèi)存,完成主從數(shù)據(jù)庫(kù)狀態(tài)的一致性;??(4)?Redis?Master節(jié)點(diǎn)此期間進(jìn)行的寫(xiě)操作同步到Redis?Slave節(jié)點(diǎn)執(zhí)行,??同步操作執(zhí)行完成。主從同步流程圖如圖2.1所示。??Redis?Redis??Slave?Master??I?I??I?I??r1,?從節(jié)點(diǎn)給主節(jié)點(diǎn)發(fā)送全量同步命令??Tl ̄|主節(jié)點(diǎn)執(zhí)行bgsave命令并??在后臺(tái)生成RDB文件,在??<1?緩沖區(qū)記錄新來(lái)的寫(xiě)命令??主節(jié)點(diǎn)將生成的RDB?'??/?????加載RDB文??件至內(nèi)存?主節(jié)點(diǎn)將緩沖區(qū)中的????????hi??I??執(zhí)行寫(xiě)命令?I??!??I?i??i?i??i?■??圖2.1主從同步流程圖??在完成命令同步后,主從數(shù)據(jù)庫(kù)狀態(tài)在主實(shí)例接收到寫(xiě)命令之后又不一致,??此時(shí)Redis?Master就會(huì)向Redis?Slave執(zhí)行命令傳播,將寫(xiě)命令發(fā)送給Redis??Slave執(zhí)行。??在Redis2.8版本之前,Redis同步機(jī)制只會(huì)進(jìn)行全量同步,即無(wú)論是斷線??后重連還是初次進(jìn)行主從同步都是執(zhí)行sync命令以及命令傳播操作。但Redis??執(zhí)行bgsave命令會(huì)消耗大量的服務(wù)器資源,而主服務(wù)器發(fā)送rdb文件給從服務(wù)??器會(huì)占用大量的網(wǎng)絡(luò)資源。所以在Redis2.8之后的版本,對(duì)sync命令進(jìn)行了優(yōu)??化

【參考文獻(xiàn)】:
期刊論文
[1]一種實(shí)時(shí)數(shù)據(jù)庫(kù)的分布式存儲(chǔ)方法[J]. 周淳,李賢慧.  計(jì)算機(jī)系統(tǒng)應(yīng)用. 2019(04)
[2]基于Reactor模式的高性能反向代理服務(wù)器設(shè)計(jì)[J]. 邢穎,黃啟俊,易凡,黃家偉.  自動(dòng)化技術(shù)與應(yīng)用. 2019(03)
[3]基于NoSQL的特色數(shù)據(jù)庫(kù)系統(tǒng)研究[J]. 趙永強(qiáng).  圖書(shū)館工作與研究. 2018(S1)
[4]NoSQL數(shù)據(jù)庫(kù)與緩存一致性研究[J]. 葉文.  信息與電腦(理論版). 2018(21)
[5]一種高效的Redis Cluster的分布式緩存系統(tǒng)[J]. 李翀,劉利娜,劉學(xué)敏,張士波.  計(jì)算機(jī)系統(tǒng)應(yīng)用. 2018(10)
[6]基于分片一致性哈希負(fù)載均衡策略與應(yīng)用[J]. 蘇躍明,李晨,田麗華.  計(jì)算機(jī)技術(shù)與發(fā)展. 2017(11)
[7]Redis集群可靠性的研究與優(yōu)化[J]. 李燚,顧乃杰,黃增士,任開(kāi)新.  計(jì)算機(jī)工程. 2018(05)
[8]多線程環(huán)境下Reactor模式的研究與實(shí)現(xiàn)[J]. 李璞,張玲,胡術(shù),潘倩,李艷.  網(wǎng)絡(luò)新媒體技術(shù). 2017(02)
[9]分布式存儲(chǔ)系統(tǒng)中改進(jìn)的一致性哈希算法[J]. 王康,李東靜,陳海光.  計(jì)算機(jī)技術(shù)與發(fā)展. 2016(07)
[10]Linux下套接字I/O復(fù)用模型介紹[J]. 陳鋒.  福建電腦. 2010(11)

碩士論文
[1]基于NoSQL數(shù)據(jù)庫(kù)的系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[D]. 仝野.南京郵電大學(xué) 2018
[2]基于ZooKeeper的配置中心系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 董龍成.西安電子科技大學(xué) 2018
[3]基于Redis的分布式Key-Value系統(tǒng)的優(yōu)化研究[D]. 周曉場(chǎng).華南理工大學(xué) 2018
[4]數(shù)據(jù)庫(kù)集群中間件負(fù)載均衡模塊的設(shè)計(jì)與實(shí)現(xiàn)[D]. 崔丹.北京郵電大學(xué) 2017
[5]基于一致性哈希的高可用負(fù)載均衡方案的設(shè)計(jì)與實(shí)現(xiàn)[D]. 李志成.浙江大學(xué) 2016
[6]基于NIO的Java高性能網(wǎng)絡(luò)技術(shù)的研究與應(yīng)用[D]. 吳高陽(yáng).西安電子科技大學(xué) 2014
[7]基于ZooKeeper的分布式處理框架的研究與實(shí)現(xiàn)[D]. 譚玉靖.北京郵電大學(xué) 2014
[8]基于高并發(fā)海量數(shù)據(jù)的數(shù)據(jù)庫(kù)高可用性的研究與實(shí)現(xiàn)[D]. 劉盛.天津大學(xué) 2012
[9]基于NIO的java高性能網(wǎng)絡(luò)應(yīng)用的技術(shù)研究[D]. 曾自強(qiáng).北京郵電大學(xué) 2009



本文編號(hào):3426000

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3426000.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶dadca***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com