欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Docker云平臺(tái)下彈性緩存系統(tǒng)的制作方法

文檔序號(hào):9600940閱讀:902來(lái)源:國(guó)知局
一種Docker云平臺(tái)下彈性緩存系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,更準(zhǔn)確地說(shuō)本發(fā)明應(yīng)用在云平臺(tái)上,運(yùn)用 Docker技術(shù)和緩存策略將CPU、內(nèi)存、帶寬等計(jì)算資源整合為具有彈性的緩存服務(wù),提供給 用戶。
【背景技術(shù)】
[0002] 云是由大量整合管理的計(jì)算資源和存儲(chǔ)資源組成,通常包括提供計(jì)算能力的、提 供虛擬網(wǎng)絡(luò)的、及提供大容量存儲(chǔ)的服務(wù)器集群。由于來(lái)自用戶的訪問(wèn)具有不確定性的流 量峰值,在流量較低時(shí)候,服務(wù)器平均利用率低下。在保證數(shù)據(jù)安全和服務(wù)可靠的基礎(chǔ)上, 提高資源利用率,減少能源耗費(fèi),是云計(jì)算平臺(tái)亟需解決的問(wèn)題。因此,虛擬資源的彈性 分配對(duì)于提高資源利用率和降低運(yùn)營(yíng)成本具有現(xiàn)實(shí)意義。
[0003] 分布式緩存可以使對(duì)象與應(yīng)用之間數(shù)據(jù)傳輸事件大大降低,是云平臺(tái)提升應(yīng)用性 能的一種重要手段。尤其對(duì)于數(shù)據(jù)密集型的Web應(yīng)用,采用分布式緩存技術(shù)可以提升云平 臺(tái)的性能。目前比較成熟、用戶量比較大的分布式緩存系統(tǒng)有Amazon的ElastiCache和阿 里云的0CS,這兩個(gè)系統(tǒng)以及大部分緩存系統(tǒng)都需要用戶手動(dòng)更改配置后才能實(shí)現(xiàn)集群的 彈性伸縮。若系統(tǒng)訪問(wèn)量突增,固定的緩存集群規(guī)模不能承受大流量訪問(wèn),會(huì)造成系統(tǒng)訪 問(wèn)速度降低。因此,系統(tǒng)根據(jù)需求實(shí)時(shí)自動(dòng)彈性伸縮,給用戶帶來(lái)極大的便利。然而,現(xiàn)有 的緩存系統(tǒng)大都采用傳統(tǒng)虛擬化技術(shù),虛擬機(jī)啟動(dòng)速度十分慢,遠(yuǎn)遠(yuǎn)達(dá)不到實(shí)時(shí)性要求,所 以,本發(fā)明采用Docker技術(shù),實(shí)現(xiàn)云平臺(tái)下的彈性緩存。

【發(fā)明內(nèi)容】

[0004] 發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明實(shí)現(xiàn)具有集群狀態(tài)監(jiān)控(CPU使用 率、內(nèi)存狀態(tài)、網(wǎng)絡(luò)狀態(tài)等)功能的Docker集群管理平臺(tái),同時(shí)平臺(tái)具有容器的啟動(dòng)與銷毀 功能;每個(gè)用戶可以分配一個(gè)獨(dú)自的緩存集群,緩存集群根據(jù)用戶配置自動(dòng)創(chuàng)建并上線使 用;用戶可以實(shí)時(shí)監(jiān)測(cè)各個(gè)緩存集群運(yùn)行時(shí)狀態(tài),包括緩存大小、每秒請(qǐng)求數(shù)、各容器狀態(tài), 緩存集群的規(guī)??筛鶕?jù)用戶的實(shí)際使用情況動(dòng)態(tài)變化;實(shí)現(xiàn)災(zāi)難檢測(cè)與恢復(fù)機(jī)制。當(dāng)一個(gè) 集群中某個(gè)節(jié)點(diǎn)出現(xiàn)異常而無(wú)法進(jìn)行服務(wù)時(shí),系統(tǒng)會(huì)根據(jù)節(jié)點(diǎn)類型不同做出相應(yīng)的處理, 使集群恢復(fù)正常服務(wù),確保了系統(tǒng)的高可用性;實(shí)現(xiàn)便于用戶操作緩存數(shù)據(jù)的客戶端,為提 高效率,客戶端采用連接池技術(shù),并對(duì)用戶屏蔽了實(shí)現(xiàn)細(xì)節(jié)。
[0005] 技術(shù)方案:一種Docker云平臺(tái)下彈性緩存系統(tǒng),包括Webserver模塊、Docker集 群管理模塊、Docker宿主機(jī)集群、MySQL數(shù)據(jù)庫(kù)、Etcd集群、Docker鏡像倉(cāng)庫(kù)和客戶端。
[0006]Webserver模塊為系統(tǒng)核心,負(fù)責(zé)Docker容器的啟動(dòng)與刪除,處理Redis集群彈性 伸縮請(qǐng)求與容災(zāi)方面請(qǐng)求,以及處理Client端各種請(qǐng)求,并為管理員和用戶提供可視化界 面。Webserver使用JS0N作為數(shù)據(jù)交換格式。
[0007] 使用開(kāi)源項(xiàng)目Swarm和etcd作為Docker集群管理的基礎(chǔ)。Docker集群管理模 塊通過(guò)Etcd集群,管理Docker宿主機(jī)集群,使用標(biāo)準(zhǔn)的Dcoker協(xié)議管理Docker宿主機(jī)集 群。啟動(dòng)時(shí)訂閱相應(yīng)目錄,Docker宿主機(jī)定期將自身信息發(fā)布到同一目錄。Docker集群管 理模塊接收到訂閱的信息后,根據(jù)接收的訂閱信息更新宿主機(jī)列表及宿主機(jī)系統(tǒng)狀態(tài)。同 時(shí),Docker集群管理模塊為Webserver模塊提供服務(wù),包括收集Docker宿主機(jī)中容器的信 息、新建或銷毀容器、定時(shí)收集Docker宿主機(jī)系統(tǒng)狀況(CPU負(fù)載、內(nèi)存信息、帶寬、I/O信 息)。
[0008] Docker宿主機(jī)集群:存儲(chǔ)引擎選用Redis,基于開(kāi)源項(xiàng)目Codis搭建Redis集群。 Docker宿主機(jī)集群有多個(gè)Redis集群構(gòu)成。每個(gè)Redis集群對(duì)應(yīng)一個(gè)DockerImage。在 DockerImage中,集成一個(gè)容器守護(hù)進(jìn)程模塊,以及不同類型的容器節(jié)點(diǎn)。在Docker宿主 機(jī)集群中,容器節(jié)點(diǎn)類型分為Redis模式、Proxy模式和Manager模式。根據(jù)Docker容器 節(jié)點(diǎn)類型的不同,啟動(dòng)相應(yīng)的流程,主要包括啟動(dòng)過(guò)程管理、節(jié)點(diǎn)狀態(tài)監(jiān)控、彈性實(shí)現(xiàn)、節(jié)點(diǎn) 故障上報(bào)。
[0009] 在Docker云平臺(tái)中,為了實(shí)現(xiàn)多租戶隔離,每個(gè)用戶都有一個(gè)獨(dú)占的RediS集群。 Client端與集群中Proxy節(jié)點(diǎn)可以直接通信。為了確保高可用性,用戶在配置Redis集群 時(shí)可以選擇建立Redis Slave節(jié)點(diǎn),基于Redis的主從復(fù)制功能,slave節(jié)點(diǎn)具有與master 節(jié)點(diǎn)相同數(shù)據(jù)。當(dāng)Redis Master節(jié)點(diǎn)失效時(shí),實(shí)時(shí)地將slave節(jié)點(diǎn)提升為master節(jié)點(diǎn)。
[0010] Client端通過(guò)TCP/IP協(xié)議與Redis集群通信,通過(guò)HTTP協(xié)議與Webserver通信。 Client端的功能是驗(yàn)證用戶身份、更新Docker宿主機(jī)集群的Proxy列表、提供存取緩存接 口。由于Redis集群Proxy節(jié)點(diǎn)不固定,為了確保Client端及時(shí)更新Proxy列表,采用連 接池技術(shù)管理Client與Proxy的所有連接。
[0011] MySQL數(shù)據(jù)庫(kù):用于存儲(chǔ)Webserver模塊的數(shù)據(jù)。
[0012] Ectd集群:用于整個(gè)系統(tǒng)的服務(wù)發(fā)現(xiàn)平臺(tái)。
[0013] Docker鏡像倉(cāng)庫(kù):為Docker宿主機(jī)提供Docker Image下載服務(wù)。
[0014] WebServer模塊是系統(tǒng)管理中樞,具有擴(kuò)展能力,采用無(wú)狀態(tài)設(shè)計(jì)方法,可以根據(jù) 需求橫向擴(kuò)展。Webserver模塊啟動(dòng)后,在Etcd集群中/Webserver目錄發(fā)布自身信息。當(dāng) 其他模塊向Webserver模塊發(fā)請(qǐng)求時(shí),首先從該目錄下隨機(jī)獲取某個(gè)WebServer服務(wù)地 址,此處使用了etcd的服務(wù)發(fā)現(xiàn)功能。根據(jù)請(qǐng)求對(duì)象,Webserver細(xì)分為用戶服務(wù)模塊、管 理員服務(wù)模塊、Client服務(wù)模塊、Docker集群通信模塊。
[0015] 用戶服務(wù)模塊:用戶服務(wù)模塊主要以B/S架構(gòu)為用戶提供服務(wù),服務(wù)包括:Redis 緩存集群初始化、Redis緩存集群監(jiān)控。用戶通過(guò)Web界面配置所需集群,配置項(xiàng)包括初始 Redis服務(wù)組個(gè)數(shù)、彈性高閾值、彈性低閾值、是否保證高可用,選擇完畢后將信息提交。系 統(tǒng)分析處理配置信息后,啟動(dòng)所需的節(jié)點(diǎn)容器,五分鐘左右Redis集群便可成功創(chuàng)建并將 集群信息保存到MySQL數(shù)據(jù)庫(kù)。創(chuàng)建集群后用戶通過(guò)Web頁(yè)面監(jiān)視集群狀態(tài),包括集群ID 值、集群是否成功啟動(dòng)、緩存大小、每分鐘處理請(qǐng)求數(shù)、命中率、Redis節(jié)點(diǎn)個(gè)數(shù)、Proxy節(jié)點(diǎn) 個(gè)數(shù)。
[0016] 管理員服務(wù)模塊:管理員服務(wù)模塊主要以B/S架構(gòu)為管理員提供服務(wù),服務(wù)主要 為整個(gè)系統(tǒng)的監(jiān)控。管理員登錄后,以網(wǎng)頁(yè)形式提供整個(gè)Docker宿主機(jī)集群狀態(tài),信息包 括:宿主機(jī)數(shù)目、失連宿主機(jī)信息、宿主機(jī)系統(tǒng)信息(如IP地址、CPU使用率、內(nèi)存使用率、 帶寬)、所有Redis集群的信息(如集群ID、Redis節(jié)點(diǎn)信息、Proxy節(jié)點(diǎn)信息等)。
[0017] Client服務(wù)模塊:Client服務(wù)模塊主要處理來(lái)自Client的HTTP請(qǐng)求,這些請(qǐng)求 包括用戶驗(yàn)證、獲得Proxy列表。對(duì)于用戶驗(yàn)證,Client提交的用戶名、密碼、集群ID信息 驗(yàn)證通過(guò)后,返回Proxy地址列表。此外還需處理Client每隔一段時(shí)間會(huì)發(fā)出獲得Proxy 地址列表的請(qǐng)求。
[0018]Docker集群通信模塊:Docker集群通信模塊通過(guò)Docker管理API(單獨(dú)部署即為 SwarmAPI,其他部署為相應(yīng)平臺(tái)提供的API)實(shí)現(xiàn)Redis集群初始化模塊、彈性伸縮模塊、 容災(zāi)模塊。
[0019] 容器守護(hù)進(jìn)程模塊集成在DockerImage中,當(dāng)容器啟動(dòng)時(shí),容器守護(hù)進(jìn)程模塊首 先啟動(dòng)。容器啟動(dòng)模式根據(jù)節(jié)點(diǎn)類型不同,分成Redis模式、Proxy模式、Manager模式。 其中Manager節(jié)點(diǎn)負(fù)責(zé)整個(gè)集群的管理并將集群相關(guān)信息保存在etcd集群中。Proxy是 Client連接Redis的代理服務(wù),它本身實(shí)現(xiàn)了Redis協(xié)議,表現(xiàn)與一個(gè)原生Redis服務(wù)相 同。Redis作為存儲(chǔ)引擎分為master、slave兩種節(jié)點(diǎn),slave復(fù)制master中數(shù)據(jù),保證高 可用性。這兩種節(jié)點(diǎn)組成了一個(gè)ServerGroup。采用哈希槽的方式對(duì)數(shù)據(jù)進(jìn)行分片,數(shù)據(jù) 根據(jù)CRC32 (key) % 1024分布在1024個(gè)slot中,slot是一個(gè)虛擬的概念,數(shù)據(jù)實(shí)際存儲(chǔ)在 多個(gè)ServerGroup中,對(duì)于ServerGroup來(lái)說(shuō)沒(méi)有任何分布式邏輯在其中,每個(gè)Server Group負(fù)責(zé)一部分key-value數(shù)據(jù)。
[0020] 為了實(shí)現(xiàn)彈性緩存功能,彈性伸縮模塊負(fù)責(zé)處理Redis集群中Manager節(jié)點(diǎn)的彈 性伸縮請(qǐng)求,請(qǐng)求類型包括:增加Redis服務(wù)組、刪除Redis服務(wù)組、增加Proxy節(jié)點(diǎn)、刪除 Proxy節(jié)點(diǎn)。
[0021] 彈性云緩存系統(tǒng)一個(gè)重要特性就是緩存集群規(guī)模會(huì)隨著負(fù)載的變化而相應(yīng)伸縮。 隨著應(yīng)用讀取緩存速度的增加,Redis緩存集群所需要的內(nèi)存、CPU、帶寬資源也會(huì)相應(yīng)增 加,這時(shí),需要通過(guò)增加Redis節(jié)點(diǎn)或Proxy節(jié)點(diǎn),提升Redis集群承載能力。相反,當(dāng)用 戶的應(yīng)用讀取緩存的速度減少時(shí),Redis集群所需要的資源也會(huì)相應(yīng)減少,此時(shí)可以減少 Redis節(jié)點(diǎn)或Proxy節(jié)點(diǎn),提升整個(gè)彈性緩存系統(tǒng)的利用率。
[0022] 為了實(shí)現(xiàn)集群的彈性伸縮功能,本發(fā)明使用基于動(dòng)態(tài)三次指數(shù)平滑預(yù)測(cè)算法的集 群彈性伸縮實(shí)現(xiàn)。
[0023] 在Redis集群中,Manager節(jié)點(diǎn)定時(shí)收集所有Proxy、Redis節(jié)點(diǎn)的負(fù)載信息。Proxy 的負(fù)載信息包括內(nèi)存使用率MUS_、CPU使用率Cus_、帶寬使用率Nus_。Redis節(jié)點(diǎn)的信息只 包括內(nèi)存使用率Mus_。
[0024] 對(duì)于Redis節(jié)點(diǎn),Manager會(huì)將所有Redis節(jié)點(diǎn)的MusagfJj(據(jù),整合在一起形成 Redis節(jié)點(diǎn)的整體負(fù)載。當(dāng)系統(tǒng)長(zhǎng)時(shí)間運(yùn)行后,可能會(huì)造成各節(jié)點(diǎn)負(fù)載情況分布不均,因此, 整合時(shí)需要分析這些Redis節(jié)點(diǎn)負(fù)載信息的離散度,采用公式(1)計(jì)算Redis節(jié)點(diǎn)負(fù)載信 息為:
[0026] 其中i表示Redis節(jié)點(diǎn)的序號(hào),如果〇多20,說(shuō)明負(fù)載分布不均,此時(shí)需要執(zhí)行 Rebalance操作,重新分配這些Redis節(jié)點(diǎn)負(fù)載。]\^表示節(jié)點(diǎn)i的內(nèi)存使用率,S卩已用內(nèi)存 除以總共內(nèi)存。μ表示Reids節(jié)點(diǎn)的整體負(fù)載,并保存到Redis負(fù)載的時(shí)間序列{Rt,t= 1,2,...,η}中。時(shí)間序列用固定長(zhǎng)度隊(duì)列保存在Manager節(jié)點(diǎn)的內(nèi)存中。
[0027] 對(duì)于Proxy節(jié)點(diǎn),Client端采用輪詢方式與Proxy進(jìn)行通信,使得每個(gè)Proxy節(jié) 點(diǎn)的負(fù)載情況相差不大。所有Proxy節(jié)點(diǎn)的整體負(fù)載Pall可利用公式(2)計(jì)算得到:
[0029] 同樣,Pall表示Proxy節(jié)點(diǎn)的整體負(fù)載,并保存至Proxy負(fù)載的時(shí)間序列{Pt,t= 1,2,...,11},11表
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
谷城县| 连山| 绥德县| 文化| 攀枝花市| 新竹市| 廉江市| 许昌市| 清涧县| 凌云县| 日喀则市| 论坛| 峨边| 遵义市| 乾安县| 阿拉善右旗| 石泉县| 义马市| 南陵县| 宿州市| 合水县| 成都市| 临颍县| 梁平县| 台北县| 南充市| 阳谷县| 张掖市| 布尔津县| 新丰县| 周至县| 郧西县| 黄山市| 西安市| 扬州市| 宜州市| 天长市| 绥芬河市| 凭祥市| 大方县| 六盘水市|