亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        大規(guī)模游戲平臺云緩存技術研究與實踐

        2016-05-14 16:29:40陳杰龐濤付志鵬唐勇楊維云
        移動通信 2016年5期
        關鍵詞:數據存儲

        陳杰 龐濤 付志鵬 唐勇 楊維云

        編者按

        在數據呈爆炸性增長的時代,云計算與大數據技術的重要性不言而喻,對海量數據的挖掘、分析與應用已成熱點。本次專題在著重探討電信運營商該如何發(fā)掘大數據價值、拓展新型增值業(yè)務的基礎上,亦提出了大數據在金融、旅游等領域的具體應用。此外,有關云緩存技術、大數據融合建設的研究在專題中也有所體現(xiàn),希望通過本次專題為云計算與大數據的發(fā)展提供一些思路與建議。

        【摘 要】傳統(tǒng)的緩存處理機制難以滿足互聯(lián)網業(yè)務高并發(fā)、高性能的需求,因此提出了動靜結合的多級云緩存架構,可支持大規(guī)模數據存儲和快速檢索查詢服務,并基于一致性哈希算法,實現(xiàn)了對多分布式服務節(jié)點的統(tǒng)一管理和調度效率提升,最后通過在大規(guī)模游戲業(yè)務平臺開展的實踐,驗證了平臺性能和訪問速度的大幅提升。

        【關鍵詞】大規(guī)模游戲平臺 云緩存 數據存儲

        中圖分類號:TP399 文獻標識碼:A 文章編號:1006-1010(2016)05-0005-05

        1 引言

        近年來,以游戲、視頻為代表的移動互聯(lián)網應用高速發(fā)展。與傳統(tǒng)電信應用相比,大型移動互聯(lián)網應用具有以下特點:

        (1)高并發(fā)、大流量:數以億計規(guī)模的高并發(fā)用戶,長時間的大流量訪問;

        (2)海量數據:存儲、管理海量數據,需要使用大量服務器;

        (3)用戶接入環(huán)境復雜:面向全球用戶提供服務,用戶網絡環(huán)境千差萬別;

        (4)短時間用戶增長迅速,急需大量資源;

        (5)產品復雜多樣,需求快速變更。

        為了滿足多網絡用戶快速接入需求,提升用戶體驗,傳統(tǒng)電信業(yè)務平臺多采用內容分發(fā)(CDN,Content Delivery Network)緩存機制。但動態(tài)緩存數據管理較為復雜,缺乏靈活性,無法滿足快速增長和超高的游戲業(yè)務峰值并發(fā)服務需求。

        基于此,本文接下來將提出動靜結合的多級云緩存框架,以適應大規(guī)模移動互聯(lián)網業(yè)務平臺的承載需求。在傳統(tǒng)CDN文件緩存基礎上引入Varnish靜態(tài)緩存、基于MAP的本地動態(tài)緩存和Redis遠程動態(tài)緩存,構建多級云緩存,并通過實踐證明其實現(xiàn)了高性能I/O吞吐能力,減少了服務器和核心數據庫的交互次數,提高了接口訪問速度和并發(fā)量。同時將緩存處理邏輯封裝,面向應用層業(yè)務需求統(tǒng)一開放接口,提高了上層應用開發(fā)效率。

        2 動靜結合的云緩存架構

        常見的互聯(lián)網業(yè)務多采用分布式的內容分發(fā)緩存機制。在中國電信、中國移動、中國聯(lián)通網絡中部署服務器節(jié)點,以某一節(jié)點為中心,實現(xiàn)多節(jié)點間的數據共享和同步。不同網絡的用戶可以就近接入CDN節(jié)點,快速、高效地獲取應用內容?;贑DN機制的緩存架構圖如圖1所示:

        在實際業(yè)務運營中,傳統(tǒng)的CDN緩存機制對動態(tài)緩存數據管理較為復雜,缺乏靈活性。尤其是新業(yè)務上線時,需要大量人力檢查并修改緩存文件,給業(yè)務快速部署和服務靈活提供帶來了嚴重的挑戰(zhàn)。

        針對上述問題,本文提出了動靜結合的云緩存架構,以滿足高并發(fā)的移動互聯(lián)網業(yè)務承載需求。該架構具備橫向擴展能力,相對上層業(yè)務系統(tǒng)透明,可根據業(yè)務的發(fā)展,平滑擴展存儲性能與容量,動態(tài)滿足業(yè)務需求,有效地提升系統(tǒng)資源利用率。系統(tǒng)架構如圖2所示:

        中心數據庫采用關系型數據庫MySQL和非關系型數據庫MongoDB。本地動態(tài)緩存采用MAP內存處理技術,遠程動態(tài)緩存采用Redis技術;本地緩存和遠程緩存之間通過事件驅動模型實時更新和維護數據;采用XML標記語言,以標準格式封裝緩存處理邏輯以及各種查詢、數據同步、容災備份等統(tǒng)一數據服務的業(yè)務邏輯,并以Java接口方式封裝成API,提供給相關業(yè)務統(tǒng)一調用。各種業(yè)務調用緩存機制后,輸出結果采用靜態(tài)緩存Varnish技術進行加速,以提升效率。

        通過對緩存處理邏輯的封裝,為應用業(yè)務層提供了統(tǒng)一的存儲訪問接口,使開發(fā)人員從繁雜的緩存維護同步工作中解脫出來,專注于業(yè)務開發(fā),從而提高了開發(fā)效率,減少了由于緩存數據維護不一致而導致的系統(tǒng)漏洞和缺陷,提升了系統(tǒng)穩(wěn)定性。

        3 關鍵技術方案

        3.1 靜態(tài)緩存和動態(tài)緩存機制

        在靜態(tài)緩存方面,采用高性能的開源HTTP加速器Varnish技術,緩存靜態(tài)頁面和一些重要業(yè)務的靜態(tài)數據。Varnish基于內存進行緩存,性能好,單臺服務并發(fā)可達到5000次/s。采用反向代理Web容器定期維護緩存數據。當Tomcat服務器出現(xiàn)故障時,可自動切換到Varnish,提高了平臺的穩(wěn)定性。

        在本地動態(tài)緩存方面,將用戶訪問頻繁的靜態(tài)數據備份到本地基于MAP的內存緩存中,以減少網絡I/O的消耗,提高平臺的并發(fā)量。

        本地緩存中各集群節(jié)點的數據維護采用組播技術實現(xiàn)。所有節(jié)點均為對等模式,節(jié)點自動發(fā)現(xiàn),不存在主節(jié)點選舉。每個節(jié)點都維護一份集群成員表,新節(jié)點加入時,通知集群其他成員更新成員列表,以便每個節(jié)點都能及時更新成員列表。如圖3所示,節(jié)點1、節(jié)點2、節(jié)點3分別維護一份成員列表,定期通過組播更新自己節(jié)點消息,當節(jié)點4新加入集群組時,向節(jié)點1、節(jié)點2和節(jié)點3組播自身的節(jié)點消息,節(jié)點1、節(jié)點2和節(jié)點3接收到該信息后,將節(jié)點4加入到其成員列表中。同時,節(jié)點1、節(jié)點2和節(jié)點3也不斷向集群發(fā)送其節(jié)點消息,節(jié)點4接收后將依次更新成員列表信息,最終達到四個節(jié)點均擁有四個節(jié)點成員信息。當任意機器數據發(fā)生變更時,則將變更數據發(fā)送給其他機器,保證各機器數據的一致性。

        遠程動態(tài)緩存采用Redis技術。與Memcached類似,Redis是一個key-value存儲系統(tǒng),它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set:有序集合)和Hash(哈希類型)等。

        游戲業(yè)務實踐中,Redis緩存采用主從讀寫分離技術。在大并發(fā)業(yè)務需求(如游戲APP集中下載、活動集中參與等)時,使用多臺服務器作為Redis服務器,并采用“多級服務器集群架構”和“主從模式”對服務器設備進行管理。設定一個主服務器負責數據寫入,多臺從服務器負責數據讀取。主服務器和從服務器之間通過Redis server端實現(xiàn)數據同步。各Redis服務器也采用分布式,Redis客戶端負責選擇連接到哪臺服務器,無需人工干預。

        通過分級動態(tài)緩存技術,極大提升了平臺的服務能力。游戲業(yè)務單臺服務器并發(fā)可達到7000次/s,命中率可達90%以上。

        3.2 本地緩存與遠程緩存機制

        本地緩存保存一些常用的基本數據和少量列表信息,以減少調用遠程緩存服務器及數據庫的壓力。同時為了控制內存的占用量,在處理之前需要評估緩存信息大小。當緩存的信息總量超過預設的內存大小時,使用近期最少使用(LRU,Least Recently Used)算法,對內存中緩存的信息進行替換。目前僅這一層的訪問命中率可高達90%以上,保證了接口的整體訪問速度在200ms以內。

        遠程緩存主要用來保存數據庫各表之間的對應關系,以代替?zhèn)鹘y(tǒng)的數據庫查詢功能,實現(xiàn)業(yè)務快速查詢和處理響應。

        為了實現(xiàn)緩存處理邏輯層的統(tǒng)一封裝,需要將多臺機器的緩存信息同步,實現(xiàn)本地緩存與遠程緩存之間的信息更新。在游戲業(yè)務實踐中,通過事件驅動模型實時更新/維護緩存數據。具體實現(xiàn)過程如圖4所示。

        數據查詢采用本地緩存、遠程緩存、核心層本地緩存、核心層遠程緩存、數據庫的查詢流程。在遠程緩存沒有命中時,將查詢中心數據庫,查詢結果將保存在本地緩存和遠程緩存中。在數據保存在本地緩存后,將以異步的方式發(fā)送給其它節(jié)點機器實現(xiàn)同步。

        采用了創(chuàng)新的云緩存框架后,平臺業(yè)務應用接口最高不超過300ms,90%在100ms以內,緩存刷新延遲不超過500ms。

        3.3 改進型的一致性哈希映射算法

        普通的Hash方法在數據緩存處理時存在問題。例如,以key%N的方式將數據映射到具體的服務器物理節(jié)點上,其中key是數據的key,N是服務器節(jié)點數。如果有一個機器加入或退出這個集群,每一個服務器緩存節(jié)點都必須進行數據遷移,數據的緩存命中率將大幅降低。

        本文采用改進型的一致性哈希算法,以降低緩存節(jié)點變化對緩存命中率的影響。如圖5所示,實際部署4個物理節(jié)點,將數據按照key的哈希值分布到100個虛擬節(jié)點上,以N=Hash(key)%100的方式計算分配每個物理節(jié)點,配置Hash值權重。N為0~19時,則數據落到Node1節(jié)點上;N為20~39時,則數據落到Node2節(jié)點上;N為40~59時,則數據落到Node3節(jié)點上;N為60~99時,則數據落到Node4節(jié)點上。

        如圖6所示,如果Node4節(jié)點負載過大,則添加Node5節(jié)點,調整中只會影響Node4節(jié)點的緩存命中率,從而實現(xiàn)緩存節(jié)點平滑地添加與刪除。

        4 應用效果

        本文的研究成果在中國電信愛游戲業(yè)務平臺中開展了應用實踐。

        在未采用云緩存機制前,愛游戲業(yè)務采用互聯(lián)網傳統(tǒng)處理機制,利用關系型數據庫保存業(yè)務的基礎數據、用戶訪問日志以及經營分析數據等。在實際業(yè)務運營中,該架構無法滿足高并發(fā)、高性能要求。以用戶下載為例,緩存的命中率較低(僅為30%),實測的平均下載速度小于100kb/s,請求返回延時較大,特別是在服務高峰期,經常出現(xiàn)服務超時、連接不成功等問題,用戶體驗較差,流失率增高。

        在采用本文提出的云緩存架構進行平臺升級后,靜態(tài)緩存命中率達95%,動態(tài)數據緩存命中率達90%,中心數據庫僅需處理其中5‰的業(yè)務量。中心數據庫無需直接面對用戶請求,服務能力提升了200倍,大幅提高了整個系統(tǒng)的吞吐量。對于一個復雜的列表頁面請求,原機制下響應時間需800ms左右。升級后命中一級緩存(靜態(tài)頁面),響應時間不到10ms,加快了數據訪問速度,提升了用戶體驗。

        5 結束語

        隨著移動互聯(lián)網業(yè)務的快速增長,迫切需要使用緩存技術優(yōu)化提升平臺性能。本文利用Varnish、Redis等開源互聯(lián)網技術,構建了動態(tài)緩存和靜態(tài)緩存相結合、本地緩存和遠端緩存相結合的多級云緩存體系,可大幅提升業(yè)務平臺承載能力,滿足海量數據存儲和用戶高并發(fā)量訪問的需求。研究成果已應用于愛游戲平臺優(yōu)化升級,提高了緩存命中率、減少了中心數據庫的I/O訪問壓力、降低了用戶的訪問時間、提升了用戶體驗。

        參考文獻:

        [1] 邱祝文. 基于redis的分布式緩存系統(tǒng)架構研究[J]. 網絡安全技術與應用, 2014(10): 52.

        [2] 王心妍. Memcached和Redis在高速緩存方面的應用[J]. 無線互聯(lián)科技, 2012(9): 8-9.

        [3] 曾泉勻. 基于Redis的分布式消息服務的設計與實現(xiàn)[D]. 北京: 北京郵電大學, 2014.

        [4] 秦秀磊,張文博,魏峻,等. 云計算環(huán)境下分布式緩存技術的現(xiàn)狀與挑戰(zhàn)[J]. 軟件學報, 2013,24(1): 50-66.

        [5] 賀琛,陳肇雄,黃河燕,等. Web緩存技術綜述[J]. 小型微型計算機系統(tǒng), 2004,25(5): 836-842.

        [6] 趙玉偉,趙小雨,喬木,等. 緩存技術在B/S架構信息系統(tǒng)中的應用[J]. 計算機工程, 2008,34(1): 233-235.

        [7] 楊傳棟,余鎮(zhèn)危,王行剛,等. 一種流媒體CDN的內容部分推送策略[J]. 計算機工程與應用, 2007,43(25): 162-164.

        [8] 周江. 面向大數據分析的分布式文件系統(tǒng)關鍵技術[J]. 計算機研究與發(fā)展, 2014(2): 382-394.

        [9] 戴偉,胡鵬. 基于緩存回收的成本節(jié)約云服務算法研究[J]. 計算機應用研究, 2015,32(10): 3138-3141.

        [10] 方暉. 基于能效控制的DctAF框架式云緩存技術[J]. 科技通報, 2014(2): 77-79. ★

        作者簡介

        陳杰:高級工程師,現(xiàn)任職于炫彩互動網絡科技有限公司,研究方向為互聯(lián)網大型業(yè)務平臺技術架構、大數據技術框架、通信技術和移動互聯(lián)網等。

        龐濤:工程師,現(xiàn)任職于中國電信股份有限公司廣州研究院,主要研究方向為大數據、業(yè)務平臺承載技術、云應用技術等。

        付志鵬:工程師,現(xiàn)任職于炫彩互動網絡科技有限公司,主要研究方向為大數據、移動互聯(lián)網等。

        猜你喜歡
        數據存儲
        簡單的數據修復
        文理導航(2017年2期)2017-02-16 13:18:46
        大數據時代檔案信息建設的認識和實踐
        淺談電力大數據平臺關鍵技術研究與應用
        開源數據庫數據存儲的實現(xiàn)路徑分析
        基于Android開發(fā)的APP數據存儲研究
        哈希算法在物聯(lián)網數據存儲中的應用
        空難事故跨媒體信息采集與檢索方法的研究
        基于STM32的AD采集與SD卡數據存儲
        淺談信息系統(tǒng)工程和POJO模型組件開發(fā)
        基于MongoDB的調查決策系統(tǒng)數據存儲方案設計
        国产乱码人妻一区二区三区| 色偷偷av一区二区三区人妖| 亚洲一区二区视频免费看| 一本久久a久久免费综合| 国产精品亚洲欧美大片在线看| 亚洲成人福利在线观看 | 蜜桃av噜噜一区二区三区免费| 久久久国产精品123| 国产又黄又爽又色的免费| 96免费精品视频在线观看| 日本精品久久中文字幕| 成人女同av在线观看网站| 国产精品久久久久影院| 免费中文熟妇在线影片| 亚洲精品乱码久久麻豆| 国产女人好紧好爽| 亚洲成a∨人片在无码2023| 亚洲色偷拍一区二区三区 | 久久99精品久久久久久秒播| 福利一区二区三区视频午夜观看 | 女同啪啪免费网站www| 99精品欧美一区二区三区| 狠狠色噜噜狠狠狠97影音先锋| 日韩极品免费在线观看| 成人影片麻豆国产影片免费观看| 中文字幕人妻熟女人妻洋洋| 国产视频最新| 亚洲午夜精品第一区二区| 国产放荡对白视频在线观看| 国产人妻黑人一区二区三区| 国产精品三级av一区二区| 所有视频在线观看免费| 九九精品国产亚洲av日韩| 国内视频偷拍一区,二区,三区| 蓝蓝的天空,白白的云| 久久综合亚洲色一区二区三区| 色综合久久久久久久久五月| 国产精品三级1区2区3区| 四虎永久在线精品免费一区二区| 欧洲人妻丰满av无码久久不卡 | 99久久综合狠狠综合久久一区|