• 
    

    
    

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

      CDN流量采集系統(tǒng)數(shù)據(jù)中心服務(wù)器的設(shè)計與實現(xiàn)

      2016-05-30 10:48:04陳瀟瀟蔡迎歸李嫵可
      科技資訊 2016年16期

      陳瀟瀟 蔡迎歸 李嫵可

      摘 要: CDN流量采集系統(tǒng)是通過CDN流量數(shù)據(jù)進行采集分析以此來判斷CDN服務(wù)質(zhì)量的好壞,其依賴于一個可靠穩(wěn)定的數(shù)據(jù)中心服務(wù)器。本文詳細地論述了數(shù)據(jù)中心服務(wù)器模塊所具備的功能,為監(jiān)測CDN系統(tǒng)的運行和CDN流量統(tǒng)計系統(tǒng)提供了堅實可靠的數(shù)據(jù)基礎(chǔ)。

      關(guān)鍵詞:CDN 流量采集 中心服務(wù)器

      中圖分類號:TP393 文獻標識碼:A 文章編號:1672-3791(2016)06(a)-0000-00

      本文系湖南文理學(xué)院2015年校級科研項目《基于數(shù)據(jù)分流的并行入侵檢測系統(tǒng)研究》(項目編號:15YB10) 論文。

      1.引言

      隨著我國互聯(lián)網(wǎng)技術(shù)的發(fā)展,涌現(xiàn)出了很多的CDN提供商。為了更好地了解CDN服務(wù)質(zhì)量的好壞以便給客戶提供優(yōu)質(zhì)的服務(wù), CDN提供商往往給出了流量統(tǒng)計、流量監(jiān)控等服務(wù),這些服務(wù)提供的依據(jù),都必須依賴CDN流量采集系統(tǒng)。本文針對系統(tǒng)的核心模塊——中心服務(wù)器進行設(shè)計與實現(xiàn)。

      2.中心服務(wù)器運行流程

      中心服務(wù)器運行在CDN流量采集系統(tǒng)數(shù)據(jù)中心,主要包括數(shù)據(jù)監(jiān)聽線程、線程池模塊和數(shù)據(jù)處理入庫線程(也即工作線程)三大功能模塊,其作用主要是接收各個節(jié)點發(fā)送過來的數(shù)據(jù),然后存儲在數(shù)據(jù)庫中。主要工作流程大致如下:

      當(dāng)啟動服務(wù)端的程序后,首先應(yīng)確保程序的單實例運行,然后初始化運行日志,再讀取服務(wù)器的配置文件后進行環(huán)境參數(shù)的配置。在上述工作就緒之后,服務(wù)器將首先創(chuàng)建網(wǎng)絡(luò)環(huán)境并初始化參數(shù),然后創(chuàng)建并初始化線程池。接收數(shù)據(jù)進程模塊監(jiān)聽著服務(wù)器上的端口,如果發(fā)現(xiàn)有Client端有數(shù)據(jù)傳輸過來,則把Client端的ID號存入連接緩沖區(qū),如果到來的事件是表明有已經(jīng)連接的客戶端的通信數(shù)據(jù)到來,就向線程池中拋入一個任務(wù)。同時喚醒空閑的任務(wù)線程來處理相關(guān)的業(yè)務(wù)請求。 當(dāng)處理線程接收了數(shù)據(jù)之后,便存入一個內(nèi)存緩沖區(qū)。在緩沖區(qū)達到一定的數(shù)量的時候,統(tǒng)一插入到數(shù)據(jù)庫中。

      3.功能設(shè)計

      3.1監(jiān)聽線程模塊

      本文設(shè)計的服務(wù)器程序功能需要在同一時間接收多個CDN節(jié)點采集程序發(fā)送過來的數(shù)據(jù),也就是說,服務(wù)器既要監(jiān)聽套接口,又要處理已經(jīng)連接的套接口,這里就需要用到I/O復(fù)用的技術(shù)(I/O multiplexing)。監(jiān)聽線程模塊為了能夠適應(yīng)接收多個Client的訪問請求,有必要加入EPOLL機制。改進后的算法如下:

      3.2線程池模塊

      由于流量采集業(yè)務(wù)復(fù)雜、采集的數(shù)據(jù)量大,CDN數(shù)據(jù)中心服務(wù)器必須具備較高的性能要求,在數(shù)據(jù)存儲量、吞吐量、響應(yīng)時間等方面都力爭最大化,因此有必要采用線程池技術(shù)來實現(xiàn)這些要求。

      (1)線程池的創(chuàng)建和初始化

      在創(chuàng)建一個線程池的過程中我們使用了兩個參數(shù),一個是 min_num,表示線程池最小數(shù)目,一個是max_num,表示線程池數(shù)目的上限。線程池的運行過程中,會讓數(shù)目維持在這兩者之間。這樣一方面不會占有過多的資源,另外一方面也不會使得過渡的創(chuàng)建線程而降低線程池的工作效率[2]。在線程池初始化過程中,我們主要做了兩個工作。一個是對創(chuàng)建工作線程并對工作線程進行初始化。另外一個是創(chuàng)建一個管理線程,用于動態(tài)的管理線程池,讓其更好的工作,使得資源更加協(xié)調(diào)。

      (2)任務(wù)的處理

      在客戶端請求發(fā)送遞交到線程池的時候,會對任務(wù)進行一系列的處理后,并將其信息回饋給客戶端。其中任務(wù)放入線程池的策略就是找到第一個處于空閑狀態(tài)的線程,然后將任務(wù)與線程綁定在線程上來達到目的。在修改線程狀態(tài)的時候先是加鎖,完成修改之后再解鎖(這是有效控制線程同步運行的關(guān)鍵),并將任務(wù)和相關(guān)參數(shù)綁定到制定的結(jié)構(gòu)中 。

      (3)線程池狀態(tài)計算和關(guān)閉銷毀

      在線程池的管理中,是用線程池的狀態(tài)來維護線程池的動態(tài)平衡的。管理線程根據(jù)線程池的狀態(tài)做出一定的管理操作。當(dāng)線程池處于空閑狀態(tài)返回0,當(dāng)處于忙碌或者正常狀態(tài)的時候,返回1。當(dāng)忙碌線程數(shù)目占總線程數(shù)目一半及其以上的時候,線程處于忙碌或正常狀態(tài)。當(dāng)忙碌線程數(shù)目占總線程數(shù)目一半以下的時候,線程處于空閑狀態(tài)。線程池處理完客戶請求,不需要的時候,這時候可以關(guān)閉并銷毀線程池,避免資源的浪費。

      (4)線程池的監(jiān)控

      線程池在最初創(chuàng)建的時候會創(chuàng)建出一個管理線程,用于對線程池的動態(tài)管理。他會每隔一段時間對線程池進行監(jiān)控,根據(jù)它的的狀態(tài)來進行相應(yīng)的操作,來創(chuàng)建和銷毀線程池中的線程,合理的利用了計算機系統(tǒng)資源。

      3.3 數(shù)據(jù)處理入庫模塊

      在系統(tǒng)的實際運行中,我們采用了Mysql數(shù)據(jù)庫。因為Mysql數(shù)據(jù)庫因其是一個快速、多線程、多用戶的SQL數(shù)據(jù)庫服務(wù)器,其出現(xiàn)雖然只有短短的數(shù)年時間,但憑借著“開放源代碼”的東風(fēng),它從眾多的數(shù)據(jù)庫中脫穎而出,成為很多電子商務(wù)網(wǎng)站的首選數(shù)據(jù)庫。同時它也提供了很多現(xiàn)成的接口函數(shù),便于我們用C語言對其進行編程訪問。

      4 小結(jié)

      本文詳細地論述了CDN流量采集系統(tǒng)數(shù)據(jù)中心服務(wù)器模塊所具備的功能。為了保證能夠同時處理多個連接請求,數(shù)據(jù)監(jiān)聽模塊采用了epoll多路復(fù)用機制。為了保證系統(tǒng)的高并發(fā)性,我們采取了線程池技術(shù)。為了保證數(shù)據(jù)數(shù)據(jù)庫不發(fā)生頻繁的讀寫,我們采用了SQL緩沖區(qū)技術(shù),在數(shù)據(jù)達到一定量的情況下統(tǒng)一插入數(shù)據(jù)庫。

      參考文獻

      [1] Gammo L, Brecht T, Shukla A. Comparing and evaluating epoll, select, and poll event mechanisms[J]. Pro of the Linux Symposium,2004(7): 45-48.

      [2] 楊繼張. UNIX網(wǎng)絡(luò)編程[M]. 北京: 清華大學(xué)出版社, 2006.

      宜川县| 安阳市| 响水县| 崇州市| 林甸县| 南川市| 西丰县| 沛县| 恩施市| 红桥区| 临泉县| 达州市| 秦安县| 勐海县| 涿州市| 卓资县| 郎溪县| 定南县| 安阳市| 宁河县| 曲周县| 方山县| 柳河县| 天台县| 徐州市| 明水县| 巴彦淖尔市| 含山县| 拜泉县| 山东| 泸溪县| 延安市| 长沙县| 鹤山市| 龙泉市| 桃园市| 湖南省| 沿河| 沁阳市| 四平市| 崇州市|