• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      集群節(jié)點(diǎn)動(dòng)態(tài)調(diào)整技術(shù)在互聯(lián)網(wǎng)分區(qū)集群中的研究

      2015-06-28 15:55:17朱建軍戴琳琳
      鐵路計(jì)算機(jī)應(yīng)用 2015年11期
      關(guān)鍵詞:客票計(jì)算資源容器

      苗 凡,朱建軍,戴琳琳

      (中國(guó)鐵道科學(xué)研究院 電子計(jì)算技術(shù)研究所,北京 100081)

      集群節(jié)點(diǎn)動(dòng)態(tài)調(diào)整技術(shù)在互聯(lián)網(wǎng)分區(qū)集群中的研究

      苗 凡,朱建軍,戴琳琳

      (中國(guó)鐵道科學(xué)研究院 電子計(jì)算技術(shù)研究所,北京 100081)

      針對(duì)售票高峰時(shí)期對(duì)計(jì)算資源的需求緊迫,而非高峰時(shí)期的需求不突出的現(xiàn)狀,提出集群彈性計(jì)算的優(yōu)化方案,滿足互聯(lián)網(wǎng)分區(qū)服務(wù)器資源充分利用的需求,并對(duì)該方案的實(shí)現(xiàn)與可行性進(jìn)行深入的分析與研究。

      集群;負(fù)載均衡;自動(dòng)擴(kuò)展;容器

      集群節(jié)點(diǎn)動(dòng)態(tài)調(diào)整技術(shù),即彈性計(jì)算,就是在負(fù)載均衡的基礎(chǔ)上根據(jù)負(fù)載的大小自動(dòng)增加或減少節(jié)點(diǎn)的技術(shù)。與傳統(tǒng)的手工增刪節(jié)點(diǎn)相比,彈性計(jì)算具有響應(yīng)時(shí)間短,運(yùn)行維護(hù)成本低,穩(wěn)定性高等特點(diǎn)而受到業(yè)界的廣泛重視。

      新一代中國(guó)鐵路客票發(fā)售和預(yù)訂系統(tǒng)(簡(jiǎn)稱:客票系統(tǒng))經(jīng)過(guò)3年的發(fā)展,已經(jīng)成功完成3次春運(yùn)大考,單日售票量突破1 000萬(wàn),互聯(lián)網(wǎng)渠道超過(guò)600萬(wàn)。在旅客暢享回家團(tuán)圓的背后,客票系統(tǒng)的擴(kuò)展性,穩(wěn)定性,容災(zāi)能力,運(yùn)行維護(hù)能力,緊急故障處理能力承受了嚴(yán)峻的考驗(yàn)。春運(yùn)結(jié)束后,當(dāng)初以峰值配置的服務(wù)器出現(xiàn)CPU、內(nèi)存、網(wǎng)絡(luò)使用率較低的現(xiàn)象。如果引入彈性計(jì)算將可以有效地管理服務(wù)器資源,提高資源利用率,將閑置的計(jì)算資源投入到新的業(yè)務(wù)上,讓傳統(tǒng)的人工新增服務(wù)器上線擴(kuò)容逐漸過(guò)渡到全自動(dòng)維護(hù),節(jié)約硬件成本與運(yùn)行維護(hù)人力成本,對(duì)新一代客票系統(tǒng)的建設(shè)具有重要意義。

      1 研究?jī)?nèi)容

      新一代客票系統(tǒng)中的應(yīng)用服務(wù)器INETIS(互聯(lián)網(wǎng)分區(qū)服務(wù)器),主要負(fù)責(zé)將互聯(lián)網(wǎng)、手機(jī)等渠道的業(yè)務(wù)請(qǐng)求準(zhǔn)確分發(fā)到各數(shù)據(jù)節(jié)點(diǎn)上,同時(shí)提供一個(gè)安全、高性能、高擴(kuò)展、穩(wěn)定可靠的中間件服務(wù)。作為新一代客票系統(tǒng)的核心模塊,INETIS的可靠性和可用性直接影響著系統(tǒng)的交易性能和用戶體驗(yàn)。由于INETIS的業(yè)務(wù)多且用戶基數(shù)大,在節(jié)假日高峰,每個(gè)放票時(shí)間點(diǎn)都會(huì)產(chǎn)生猶如洪水般的網(wǎng)絡(luò)流量,固定數(shù)目的物理節(jié)點(diǎn)無(wú)法支撐不可預(yù)見(jiàn)的并發(fā)量。本文將研究一種基于Mesos、Marathon的高可用Docker集群架構(gòu),來(lái)保證壓力暴增10倍的情況下INETIS仍能正常提供服務(wù)。它具有以下功能:

      (1)自動(dòng)實(shí)時(shí),無(wú)感知服務(wù)刷新;

      (2)支持任意多臺(tái)Docker主機(jī);

      (3)支持負(fù)載均衡,故障遷移;

      (4)具備資源彈性,自動(dòng)增刪節(jié)點(diǎn);

      (5)具備健康檢測(cè)功能,支持高可靠性。

      2 關(guān)鍵技術(shù)

      2.1 Docker

      隨著企業(yè)服務(wù)的大規(guī)模部署,單臺(tái)應(yīng)用服務(wù)器的CPU、內(nèi)存、網(wǎng)絡(luò)連接的處理能力已成為瓶頸,難以滿足大規(guī)模、高并發(fā)的需求,這就需要服務(wù)器集群。在X86時(shí)代,虛擬化技術(shù)因能提高企業(yè)資源的利用率,而成為當(dāng)時(shí)構(gòu)建大規(guī)模集群的主流技術(shù)。隨著云計(jì)算時(shí)代的到來(lái),企業(yè)對(duì)應(yīng)用服務(wù)器的安全性、隔離性要求越來(lái)越高,對(duì)于部署的標(biāo)準(zhǔn)化以及虛擬機(jī)的性能要求越來(lái)越高,容器技術(shù)的出現(xiàn)解決了以上問(wèn)題。

      Docker是以Linux容器(LXC,Linux Container)為基礎(chǔ),實(shí)現(xiàn)輕量級(jí)的虛擬化解決方案。在LXC的基礎(chǔ)上Docker進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便,用戶操作Docker容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。

      通過(guò)虛擬機(jī)搭建的集群自動(dòng)擴(kuò)展會(huì)面臨許多問(wèn)題:虛擬機(jī)提供的是完整的操作系統(tǒng)環(huán)境,遷移的時(shí)候包含了大量類似硬件驅(qū)動(dòng),虛擬處理器,網(wǎng)絡(luò)接口等并不需要的信息。虛擬機(jī)啟動(dòng)時(shí)間長(zhǎng),同時(shí)也會(huì)消耗大量的內(nèi)存及CPU資源等。

      Docker運(yùn)行起來(lái)就和一個(gè)常規(guī)程序差不多,與虛擬機(jī)相比就顯得非常輕量級(jí),而且解決了虛擬機(jī)面臨的以下問(wèn)題:

      (1)用戶可以根據(jù)自己的需要定制服務(wù)所依賴的環(huán)境,同時(shí)保持環(huán)境統(tǒng)一;

      (2)Docker鏡像(image)的Tag功能,有助于知道各個(gè)鏡像的功能和內(nèi)容,使得部署和升級(jí)更加方便;

      (3)Docker創(chuàng)建一個(gè)鏡像和制作一個(gè)系統(tǒng)快照只需要幾秒鐘,還具有運(yùn)行性能高,啟動(dòng)速度快的優(yōu)點(diǎn)。

      2.2 Mesos和Marathon

      Mesos是一款開(kāi)源的集群資源管理平臺(tái),它的主要作用是將集群中的所有機(jī)器抽象成一個(gè)大的計(jì)算機(jī),運(yùn)行在Mesos上的所有服務(wù),都不需要關(guān)心自身運(yùn)行在哪個(gè)機(jī)器上,而只需要關(guān)心集群中的資源是否充足即可。

      Marathon是一個(gè)基于Mesos的輕量級(jí)調(diào)度框架,它隨著Mesos一起運(yùn)行,并且在運(yùn)行工作負(fù)載的同時(shí)提供了更高的可用性。它具有良好的擴(kuò)展性,支持RESTful api來(lái)創(chuàng)建和管理應(yīng)用服務(wù)器,自動(dòng)為應(yīng)用服務(wù)器做容錯(cuò)遷移。Marathon還支持在同一組服務(wù)器上運(yùn)行多種類型的分布式系統(tǒng)如Hadoop,Spark等,并提供失敗檢測(cè)、任務(wù)發(fā)布、任務(wù)跟蹤、任務(wù)監(jiān)控、資源管理與資源共享等功能。

      3 系統(tǒng)架構(gòu)

      3.1 總體結(jié)構(gòu)

      基于現(xiàn)有的INETIS集群的新一代客票系統(tǒng)總體結(jié)構(gòu)如圖1所示。

      圖1 新一代客票系統(tǒng)總體結(jié)構(gòu)

      Mesos與Marathon管理并提供統(tǒng)一的計(jì)算資源池;互聯(lián)網(wǎng)用戶請(qǐng)求發(fā)送給Haproxy,并通過(guò)haproxy-marathon-bridge實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)與負(fù)載均衡;Mesos master cluster負(fù)責(zé)管理Docker集群;Docker registry為私人Docker庫(kù),Docker通過(guò)Marathon api發(fā)布到新的計(jì)算節(jié)點(diǎn)上;Docker cluster負(fù)責(zé)所有的INETIS業(yè)務(wù)。

      從圖1可以看出,Mesos是一個(gè)master/slave結(jié)構(gòu),其中Mesos master與Zookeeper,Marathon一起安裝在多臺(tái)物理機(jī)上。Mesos master使用Zookeeper進(jìn)行服務(wù)選舉和發(fā)現(xiàn),來(lái)解決Mesos master的單點(diǎn)故障,Zookeeper將保證Mesos存在多個(gè)masters,且在masters中選取一個(gè)作為active的master,當(dāng)其出現(xiàn)故障而無(wú)法工作時(shí),能選取另一個(gè)備用的master讓Mesos的slave連接到新的master,讓Mesos cluster繼續(xù)提供服務(wù)。

      Mesos slave的主要功能是向Mesos master匯報(bào)任務(wù)的狀態(tài)并為每個(gè)INETIS Docker實(shí)例提供計(jì)算資源。Mesos還配置了Docker registry的信息。Mesos slave具有恢復(fù)機(jī)制,即使一個(gè)Mesos slave死機(jī)了,用戶的任務(wù)還是能夠繼續(xù)運(yùn)行,Mesos slave將一些關(guān)鍵點(diǎn)信息如任務(wù)信息,狀態(tài)更新持久化到本地磁盤(pán)上,重新啟動(dòng)時(shí)可以從磁盤(pán)上恢復(fù)運(yùn)行這些任務(wù)。

      最下面一層為集群資源池,里面所有的物理機(jī)器均一樣,包括硬件和軟件,如CPU、內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)、操作系統(tǒng)等。每一個(gè)物理機(jī)器上跑著各個(gè)類型的INETIS Docker實(shí)例,通過(guò)不同的端口暴露給負(fù)載均衡。

      3.2 彈性計(jì)算

      Marathon負(fù)責(zé)所有INETIS Docker容器的生命周期,計(jì)算節(jié)點(diǎn)的就緒,退出,出錯(cuò)都會(huì)觸發(fā)一個(gè)事件,通過(guò)監(jiān)聽(tīng)這些事件并向中心控制器發(fā)送指令即可實(shí)現(xiàn)彈性計(jì)算,流程如圖2所示,當(dāng)INETIS負(fù)載較高需要增加計(jì)算節(jié)點(diǎn)時(shí),系統(tǒng)自動(dòng)完成以下步驟:

      圖2 彈性計(jì)算流程圖

      (1)檢測(cè)負(fù)載,檢測(cè)負(fù)載的方法有多種:a.統(tǒng)計(jì)單位時(shí)間內(nèi)INETIS應(yīng)用程序的日志量;b.獲取INETIS實(shí)時(shí)的連接數(shù)或者是等待隊(duì)列占用的大小,再將這部分?jǐn)?shù)據(jù)實(shí)時(shí)更新到日志系統(tǒng)。通過(guò)收集到的數(shù)據(jù),可以很容易就得到INETIS負(fù)載的每秒請(qǐng)求數(shù)(QPS)、響應(yīng)時(shí)間等指標(biāo),對(duì)比設(shè)置的閾值就可以判斷出是否要增加節(jié)點(diǎn)。

      (2)設(shè)置閾值,同檢測(cè)負(fù)載的方法類似,可以從不同方面設(shè)置參考值。如果根據(jù)連接的緩沖隊(duì)列大小和每個(gè)請(qǐng)求的響應(yīng)時(shí)間來(lái)設(shè)置閾值,則可設(shè)置閾值為隊(duì)列長(zhǎng)度的30%或超時(shí)請(qǐng)求超過(guò)10%。如根據(jù)單位時(shí)間寫(xiě)的日志量來(lái)設(shè)置閾值,則可設(shè)置單位時(shí)間日志增量閾值為50%。當(dāng)檢測(cè)到負(fù)載較大時(shí),控制中心會(huì)調(diào)用Marathon的RESTful API,請(qǐng)求其增加計(jì)算節(jié)點(diǎn),Marathon會(huì)自動(dòng)向Mesos請(qǐng)求資源,并根據(jù)應(yīng)用程序的配置來(lái)創(chuàng)建Docker容器節(jié)點(diǎn)。

      (3)更新負(fù)載均衡配置,當(dāng)自動(dòng)添加的節(jié)點(diǎn)就緒時(shí),事件監(jiān)聽(tīng)器就會(huì)收到就緒事件,控制器會(huì)通過(guò)自動(dòng)化的部署方案,更新負(fù)載均衡的配置文件,通過(guò)調(diào)用RESTful API,在集群中自動(dòng)重啟一個(gè)同樣的計(jì)算節(jié)點(diǎn)。

      當(dāng)高峰過(guò)后,INETIS應(yīng)用服務(wù)器的CPU負(fù)載較低時(shí),控制中心會(huì)調(diào)用Marathon的API請(qǐng)求減少節(jié)點(diǎn),步驟如下:a.從負(fù)載均衡的配置文件去掉富余節(jié)點(diǎn)的地址與端口;b.調(diào)用Marathon的API回收節(jié)點(diǎn)。

      一般情況下為了保證服務(wù)的穩(wěn)定性,都會(huì)設(shè)置一個(gè)最少的計(jì)算節(jié)點(diǎn)數(shù)目,防止因?yàn)樨?fù)載或調(diào)試的原因,導(dǎo)致所有計(jì)算節(jié)點(diǎn)都被回收。

      4 結(jié)束語(yǔ)

      本文研究了Docker在客票系統(tǒng)中的應(yīng)用,通過(guò)Docker來(lái)部署、管理、升級(jí)、維護(hù)INETIS集群,并結(jié)合Mesos與Marathon構(gòu)建了基于Docker進(jìn)行彈性計(jì)算的架構(gòu)。經(jīng)測(cè)試,方案的實(shí)現(xiàn)可以極大地節(jié)省部署時(shí)間,有效利用計(jì)算資源。但同時(shí)發(fā)現(xiàn)Docker存在版本不穩(wěn)定、Bug較多等問(wèn)題,在生產(chǎn)環(huán)境的推廣使用還存在較大的風(fēng)險(xiǎn),建議在開(kāi)發(fā)和測(cè)試環(huán)境中繼續(xù)進(jìn)行研究試用。

      [1]唐海東,武延軍. 分布式同步系統(tǒng)zookeeper的優(yōu)化[J]. 計(jì)算機(jī)工程,2014(4).

      [2]劉冉冉. 基于任務(wù)分配的數(shù)據(jù)庫(kù)集群模型研究[D].武漢:華中科技大學(xué),2007(4).

      責(zé)任編輯 方 圓

      Dynamic regulation technology of cluster node in Internet partition cluster

      MIAO Fan, ZHU Jianjun, DAI Linlin
      ( Institute of Computing Technologies, China Academy of Railway Sciences, Beijing 100081, China )

      During holidays, computing resources for INETIS were urgent in the rush hour of ticket sale, while during workdays, demands for computing resources were not very prominent. According to these current situations, the article put forward a solution of cluster elastic computing to make full use of resources, made an in-depth analysis for the implementation and feasibility of the solution.

      cluster; load balance; auto scaling; container

      U293.22∶TP39

      A

      1005-8451(2015)11-0014-03

      2015-04-10

      中國(guó)鐵路總公司科技研究計(jì)劃項(xiàng)目(2013X012-A-1,2013X012-A-2,2014X008-A)。

      苗 凡,助理研究員;朱建軍,副研究員。

      猜你喜歡
      客票計(jì)算資源容器
      Different Containers不同的容器
      基于模糊規(guī)劃理論的云計(jì)算資源調(diào)度研究
      淺談哈爾濱局集團(tuán)公司客票電子化通道強(qiáng)化與流量監(jiān)測(cè)
      難以置信的事情
      改進(jìn)快速稀疏算法的云計(jì)算資源負(fù)載均衡
      中國(guó)鐵路客票在跨境客運(yùn)中的互通方案
      基于Wi-Fi與Web的云計(jì)算資源調(diào)度算法研究
      耦合分布式系統(tǒng)多任務(wù)動(dòng)態(tài)調(diào)度算法
      航空公司客票直銷的現(xiàn)狀與分析
      取米
      莫力| 襄樊市| 奉节县| 朝阳市| 平武县| 佛坪县| 深水埗区| 通化县| 莲花县| 和林格尔县| 康保县| 拜泉县| 临夏市| 台中市| 治多县| 康乐县| 邵阳县| 安阳县| 泉州市| 奉新县| 夏津县| 临江市| 揭阳市| 延长县| 德钦县| 夏邑县| 靖江市| 读书| 富源县| 巩义市| 秦皇岛市| 临泽县| 婺源县| 灵寿县| 成都市| 海盐县| 四子王旗| 屯昌县| 太仆寺旗| 海林市| 仁怀市|