本發(fā)明屬于網(wǎng)絡(luò)直播技術(shù)領(lǐng)域,特別是涉及一種服務(wù)器及其流媒體服務(wù)提供方法。
背景技術(shù):
內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN),通過在網(wǎng)絡(luò)各處放置緩存服務(wù)器,在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上構(gòu)建一層智能虛擬網(wǎng)絡(luò),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)“邊緣”,使用戶可以就近取得所需的內(nèi)容,以緩解網(wǎng)絡(luò)擁擠的狀況,提高網(wǎng)站的相應(yīng)速度,從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不均等原因,導(dǎo)致用戶訪問網(wǎng)站的相應(yīng)速度慢的問題。
流媒體文件是采用流式傳輸及播放的媒體文件。在采用流式傳輸方式在網(wǎng)絡(luò)中傳輸流媒體文件時,首先將視頻和音頻等多媒體文件經(jīng)過壓縮分成多個壓縮包,再由服務(wù)器向客戶端連續(xù)、實時傳送。與非流式傳輸方式相比,用戶不用等到整個文件全部下載完畢才能能夠進(jìn)行播放,而是只需要經(jīng)過短時間的啟動延時即可在客戶端上利用播放器對已接收的流媒體文件進(jìn)行播放,剩余的部分將繼續(xù)進(jìn)行下載,直至流媒體文件播放完畢。
通常,流媒體服務(wù)節(jié)點在向客戶提供流媒體服務(wù)時,需要根據(jù)客戶的需求對相應(yīng)的掛載點配置信息進(jìn)行更新。但是,現(xiàn)有的掛載點配置更新方式,存在著用戶使用體驗度低且浪費資源的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例解決的問題是如何在對客戶的掛載點配置進(jìn)行更新時,提升用戶的使用體驗。
為解決上述問題,本發(fā)明實施例提供了一種服務(wù)器流媒體服務(wù)提供方法,所述服務(wù)器包括多個工作進(jìn)程,所述方法包括:工作進(jìn)程判斷是否需要對相應(yīng)的掛載點配置信息進(jìn)行更新;當(dāng)需要對相應(yīng)的掛載點配置信息進(jìn)行更新時,所述工作進(jìn)程對所述掛載點配置信息進(jìn)行更新,且在更新過程中,使用所述工作進(jìn)程繼續(xù)提供配置信息未發(fā)生變化的掛載點上所承載的流媒體服務(wù)。
可選地,所述方法還包括:當(dāng)相應(yīng)的掛載點配置信息更新完畢時,所述工作進(jìn)程繼續(xù)向用戶提供配置信息為發(fā)送變化的掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù)。
可選地,所述工作進(jìn)程對所述掛載點配置信息進(jìn)行更新,包括:所述工作進(jìn)程從預(yù)設(shè)的配置服務(wù)器中獲取對應(yīng)的掛載點配置信息;所述工作進(jìn)程將所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息進(jìn)行比較;當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息不一致時,所述工作進(jìn)程采用從所述配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息對本地存儲的對應(yīng)的掛載點配置信息進(jìn)行更新。
可選地,當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息一致時,所述方法還包括:所述工作進(jìn)程繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第一時間閾值。
可選地,當(dāng)采用所獲取的掛載點配置信息對本地所存儲的對應(yīng)的掛載點配置信息進(jìn)行更新完畢時,所述方法還包括:所述工作進(jìn)程將從所述配置服務(wù)器中獲取的掛載點配置信息存儲至預(yù)設(shè)的掛載點列表中。
可選地,當(dāng)重啟時,所述方法還包括:獲取本地存儲的對應(yīng)的掛載點配置文件,并解析得到對應(yīng)的掛載點配置信息;基于解析得到的掛載點配置信息,創(chuàng)建對應(yīng)的工作進(jìn)程;采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述配置服務(wù)器中獲取對應(yīng)的掛載點配置信息;當(dāng)確定從所述配置服務(wù)器中獲取的掛載點配置信息與解析得到的掛載點配置信息不一致時,采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述配置服務(wù)器中獲取的掛載點配置信息對本地存儲的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
可選地,當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息一致時,所述方法還包括:采用所創(chuàng)建的對應(yīng)的工作進(jìn)程繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第二時間閾值。
可選地,當(dāng)確定從所述配置服務(wù)器中獲取對應(yīng)的掛載點配置信息失敗時,所述方法還包括:采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述掛載點列表中獲取對應(yīng)的掛載點配置信息,對本地存儲的對應(yīng)的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
本發(fā)明實施例還提供了一種服務(wù)器,所述服務(wù)器包括存儲單元和多個工作進(jìn)程;所述存儲單元,適于存儲掛載點配置信息;所述工作進(jìn)程,包括判斷子單元、更新子單元和服務(wù)子單元;所述判斷子單元,適于判斷是否需要對相應(yīng)的掛載點配置信息進(jìn)行更新;所述更新子單元,適于當(dāng)判斷需要對相應(yīng)的掛載點配置信息進(jìn)行更新時,對所述掛載點配置信息進(jìn)行更新;所述服務(wù)子單元,適于在更新過程中,繼續(xù)提供配置信息未發(fā)生變化的掛載點上所承載的流媒體服務(wù)。
可選地,所述服務(wù)子單元,還適于當(dāng)對應(yīng)的掛載點配置信息更新完畢時,所述工作進(jìn)程繼續(xù)向用戶提供配置信息為發(fā)送變化的掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù)。
可選地,所述更新子單元,適于從預(yù)設(shè)的配置服務(wù)器中獲取對應(yīng)的掛載點配置信息;將所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息進(jìn)行比較;當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息不一致時,采用從所述配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息對本地存儲的對應(yīng)的掛載點配置信息進(jìn)行更新。
可選地,所述更新子單元,還適于當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息一致時,繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第一時間閾值。
可選地,所述工作進(jìn)程還包括存儲子單元;存儲子單元,適于當(dāng)采用所獲取的掛載點配置信息對本地所存儲的對應(yīng)的掛載點配置信息進(jìn)行更新完畢時,將從所述配置服務(wù)器中獲取的掛載點配置信息存儲至預(yù)設(shè)的掛載點列表中。
可選地,還包括重啟單元,適于當(dāng)重啟時,獲取本地存儲的對應(yīng)的掛載點配置文件,并解析得到對應(yīng)的掛載點配置信息;基于解析得到的掛載點配置信息,創(chuàng)建對應(yīng)的工作進(jìn)程;
所創(chuàng)建的對應(yīng)的工作進(jìn)程,適于從所述配置服務(wù)器中獲取對應(yīng)的掛載點配置信息;當(dāng)確定從所述配置服務(wù)器中獲取的掛載點配置信息與解析得到的掛載點配置信息不一致時,采用從所述配置服務(wù)器中獲取的掛載點配置信息對本地存儲的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
可選地,所創(chuàng)建的對應(yīng)的工作進(jìn)程,適于當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息一致時,還適于繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第二時間閾值。
可選地,所創(chuàng)建的對應(yīng)的工作進(jìn)程,還適于當(dāng)確定從所述配置服務(wù)器中獲取對應(yīng)的掛載點配置信息失敗時,采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述掛載點列表中獲取對應(yīng)的掛載點配置信息,對本地存儲的對應(yīng)的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
可選地,所述服務(wù)器為Nginx服務(wù)器。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下的優(yōu)點:
上述的方案,采用動態(tài)更新掛載點配置信息的方式對掛載點配置信息進(jìn)行更新,當(dāng)確定需要對對應(yīng)的掛載點配置信息進(jìn)行更新時,采用對應(yīng)的工作進(jìn)程對相應(yīng)客戶的掛載點配置信息進(jìn)行更新,并在對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),可以避免因服務(wù)重啟所導(dǎo)致的流媒體服務(wù)中斷情形的發(fā)生,因而可以提高流媒體文件的播放質(zhì)量,提升用戶的使用體驗。
進(jìn)一步地,在相應(yīng)客戶的掛載點配置信息更新完畢時,采用所述工作進(jìn)程繼續(xù)向用戶提供配置信息未更新的掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù),由于在對應(yīng)的掛載點配置信息更新完畢時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù),可以避免配置信息未更新的掛載點對應(yīng)的流媒體文件的多次回源,因而可以節(jié)約資源。
進(jìn)一步地,當(dāng)確定所獲取的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息一致時,對應(yīng)的工作進(jìn)程繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第一時間閾值,可以節(jié)約由于每次獲取掛載點配置信息均需要與配置服務(wù)器建立連接所產(chǎn)生的開銷,因而可以減輕配置服務(wù)器的負(fù)載,節(jié)約資源。
進(jìn)一步地,在對當(dāng)采用所獲取的掛載點配置信息對本地所存儲的相應(yīng)的掛載點配置信息進(jìn)行更新完畢時,通過對應(yīng)的工作進(jìn)程將從所述配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息進(jìn)行存儲,可以在重啟時采用本次下載的掛載點配置信息對相應(yīng)客戶的掛載點配置信息進(jìn)行更新,可以降低對于配置服務(wù)器的依賴,提升掛載點配置信息更新的靈活性。
附圖說明
圖1是本發(fā)明實施例中一種的服務(wù)器直播服務(wù)提供方法的流程圖;
圖2是本發(fā)明實施例中另一種的服務(wù)器直播服務(wù)提供方法的流程圖;
圖3是本發(fā)明實施例中服務(wù)器重啟時對掛載點配置信息進(jìn)行更新的方法的流程圖;
圖4是本發(fā)明實施例中的一種流媒體文件的傳輸裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實施例中的一種工作進(jìn)程的結(jié)構(gòu)示意圖。
具體實施方式
如背景技術(shù)所言,流媒體服務(wù)節(jié)點在向客戶提供流媒體服務(wù)時,需要根據(jù)客戶的需求對相應(yīng)的掛載點配置信息進(jìn)行更新。
現(xiàn)有的掛載點配置更新方式,通過控制中心生成好新的掛載點配置對應(yīng)的掛載點配置文件后,使用ansible或saltstack等運維工具向各個流媒體服務(wù)節(jié)點推送最新的掛載點配置文件,推送完后,再通過重載指令重載Nginx服務(wù),以使得最新的掛載點配置文件配置生效。
但是,上述的掛載點配置信息更新方式存在以下問題:
其一,在流媒體服務(wù)上存在多個客戶的掛載點時,每一客戶每天都有可能去新增或刪除一個掛載點,那么該流媒體服務(wù)將被多次重載,在流量比較高的時候,每一次重載服務(wù)都會對服務(wù)質(zhì)量造成很大的波動,對用戶體驗造成了嚴(yán)重的影響。
其二,由于直播是長連接,根據(jù)Nginx的服務(wù)重載機(jī)制,舊的工作進(jìn)程處理舊的長連接請求,導(dǎo)致工作進(jìn)程不能被及時釋放,越積越多,造成了資源的浪費。
其三,由于舊工作進(jìn)程在處理舊的連接時有一次回源,每一次流媒體服務(wù)每次重載后,同樣的流媒體文件被再次訪問時,新的工作進(jìn)程會再次回源,同樣造成了資源的浪費。
為解決上述問題,本發(fā)明實施例中的視頻文件提供方法,當(dāng)確定需要對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用對應(yīng)的工作進(jìn)程對相應(yīng)客戶的掛載點配置信息進(jìn)行更新,并在對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù);在相應(yīng)客戶的掛載點配置信息更新完畢時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù),可以提高流媒體文件的播放質(zhì)量,并可以節(jié)約資源。
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細(xì)的說明。
圖1是本發(fā)明實施例中的一種服務(wù)器流媒體服務(wù)提供方法的流程圖。如圖1所示的服務(wù)器流媒體服務(wù)提供方法,可以包括:
步驟S101:工作進(jìn)程判斷是否需要對相應(yīng)的掛載點配置信息進(jìn)行更新。
在具體實施中,提供流媒體服務(wù)的服務(wù)器可以根據(jù)掛載點的設(shè)置,創(chuàng)建對應(yīng)的工作進(jìn)程,也即掛載點與工作進(jìn)程之間具有預(yù)設(shè)的對應(yīng)關(guān)系。其中,每個工作進(jìn)程可以根據(jù)需要,實時地對相應(yīng)的流媒體服務(wù)對應(yīng)的掛載點配置信息進(jìn)行更新。
步驟S102:當(dāng)確定需要對相應(yīng)的掛載點配置信息進(jìn)行更新時,所述工作進(jìn)程對所述掛載點配置信息進(jìn)行更新。
在具體實施中,每個工作進(jìn)程在確定需要對相應(yīng)的掛載點配置信息進(jìn)行更新時,便可以采用最新獲取的掛載點配置信息對服務(wù)器中本地存儲的對應(yīng)的掛載點配置信息進(jìn)行更新。
步驟S103:當(dāng)對相應(yīng)的掛載點配置信息進(jìn)行更新時,使用所述工作進(jìn)程繼續(xù)提供配置信息未發(fā)生變化的掛載點上所承載的流媒體服務(wù)。
在具體實施中,當(dāng)每個工作進(jìn)程在對相應(yīng)的掛載點配置信息進(jìn)行更新,且配置信息未發(fā)生變化的掛載點正在為用戶提供相應(yīng)的流媒體服務(wù)時,如配置信息未發(fā)生變化的掛載點,在對掛載點配置信息更新之前已經(jīng)接收到相應(yīng)掛載點的流媒體訪問請求,并正在向用戶提供流媒體服務(wù)的時候,對應(yīng)的工作進(jìn)程可以在對相應(yīng)的掛載點配置信息進(jìn)行更新的同時,繼續(xù)向用戶提供正在進(jìn)行的流媒體服務(wù)。
換句話說,工作進(jìn)程對應(yīng)的掛載點配置信息的更新過程與配置信息未發(fā)生變化的掛載點的流媒體服務(wù)之間并行進(jìn)行,從而可以避免因掛載點配置信息更新所導(dǎo)致的服務(wù)重載對于正在進(jìn)行的配置信息未發(fā)生變化的掛載點的流媒體服務(wù)的影響,從而可以提高流媒體服務(wù)的質(zhì)量,提升用戶的使用體驗。
上述的方案,采用動態(tài)更新掛載點配置信息的方式對掛載點配置信息進(jìn)行更新,當(dāng)確定需要對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用對應(yīng)的工作進(jìn)程對相應(yīng)客戶的掛載點配置信息進(jìn)行更新,并在對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),可以避免因服務(wù)重啟所導(dǎo)致的流媒體服務(wù)中斷情形的發(fā)生,因而可以提高流媒體文件的播放質(zhì)量,提升用戶的使用體驗。
下面將結(jié)合圖2對本發(fā)明實施例中的服務(wù)器流媒體服務(wù)提供方法進(jìn)行詳細(xì)的描述。
參見圖2,本發(fā)明實施例中的服務(wù)器流媒體服務(wù)提供方法,適于向客戶提供相應(yīng)的流媒體服務(wù),具體可以采用如下的操作實現(xiàn):
步驟S201:工作進(jìn)程從預(yù)設(shè)的配置服務(wù)器中獲取對應(yīng)的掛載點配置信息。
在具體實施中,客戶的掛載點配置信息可以存儲于預(yù)設(shè)的配置服務(wù)器中。該配置服務(wù)器設(shè)置有統(tǒng)一的對外接口,用于客戶錄入對應(yīng)的掛載點配置信息,如對于自身所有的掛載點進(jìn)行增加、刪除或者修改等。對應(yīng)的工作進(jìn)程可以實時或者定時從配置服務(wù)器的獲取對應(yīng)的流媒體服務(wù)對應(yīng)的掛載點配置信息。在本發(fā)明一實施例中,所述配置服務(wù)器為Consul服務(wù)器。
在具體實施中,Nginx服務(wù)器在初始化過程,根據(jù)提供流媒體服務(wù)的需要,創(chuàng)建有對應(yīng)的多個工作進(jìn)程,以在接收用戶發(fā)送的流媒體訪問請求時,向用戶提供對應(yīng)的流媒體服務(wù),也即將用戶所請求的對應(yīng)的流媒體文件返回至對應(yīng)的客戶端。同時,對應(yīng)的工作進(jìn)程還采用相應(yīng)的線程實時或定時從配置服務(wù)器中獲取自身對應(yīng)的掛載點配置信息,以在客戶對掛載點配置信息進(jìn)行更新時,將對應(yīng)的掛載點配置信息同步至自身所屬的Nginx服務(wù)器中,從而根據(jù)最新的掛載點配置信息向用戶提供最新的流媒體服務(wù)。
步驟S202:判斷從所述配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息與本地存儲的對應(yīng)的掛載點配置信息是否一致;當(dāng)判斷結(jié)果為是時,可以執(zhí)行步驟S205;反之,則可以執(zhí)行步驟S203。
步驟S203:當(dāng)對本地存儲的對應(yīng)的掛載點配置信息進(jìn)行更新時,所述對應(yīng)的工作進(jìn)程繼續(xù)向用戶提供配置信息未發(fā)生變化的掛載點的流媒體服務(wù)。
在具體實施中,對應(yīng)的工作進(jìn)程在確定從預(yù)設(shè)的配置服務(wù)器中所獲取的相應(yīng)的掛載點配置信息,與自身所屬的Nginx服務(wù)器中本地所存儲的相應(yīng)的掛載配置信息不一致時,便可以采用從所述配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息對自身相應(yīng)的掛載點配置信息進(jìn)行更新。
與此同時,若配置信息未發(fā)生變化的掛載點正在為用戶提供流媒體服務(wù),則該工作進(jìn)程繼續(xù)向用戶提供對應(yīng)的流媒體服務(wù),也即掛載點配置信息的更新與提供流媒體服務(wù)之間互不干擾,也即用戶所使用的流媒體服務(wù)可以在配置信息更新的過程中繼續(xù)正常進(jìn)行,從而可以避免服務(wù)重載對正在進(jìn)行的流媒體服務(wù)的影響,從而可以提高流媒體服務(wù)的質(zhì)量。
步驟S204:當(dāng)對本地存儲的對應(yīng)的掛載點配置信息更新完畢時,所述工作進(jìn)程繼續(xù)向用戶提供配置信息未發(fā)生變化的掛載點的流媒體服務(wù),以及向用戶提供新增掛載點的流媒體服務(wù),并將從所述配置服務(wù)器中獲取的掛載點配置信息存在至預(yù)設(shè)的掛載點列表中。
在具體實施中,當(dāng)對應(yīng)的掛載點配置信息更新完畢時,對應(yīng)的工作進(jìn)程可以啟用新增掛載點對應(yīng)的流媒體服務(wù),也即在接收到新增掛載點對應(yīng)的流媒體訪問請求時,向相應(yīng)的客戶端返回對應(yīng)的流媒體文件。同時,對應(yīng)的工作進(jìn)程繼續(xù)維持正在進(jìn)行的配置信息未發(fā)生變化的掛載點對應(yīng)的流媒體服務(wù)的正常進(jìn)行。
在掛載點配置信息更新之前、過程中和之后,采用同一個工作進(jìn)程向用戶提供連續(xù)的流媒體服務(wù):一方面,可以避免由于服務(wù)重載所導(dǎo)致的工作進(jìn)程越積越多,不能及時釋放;另一方面,也可以避免由于服務(wù)重載所創(chuàng)建的新的工作進(jìn)程在接收到用戶的訪問請求時,對于配置信息未發(fā)生變化的掛載點對應(yīng)的流媒體文件的再次回源,因而可以減輕源站服務(wù)器的負(fù)載,節(jié)約資源。
在具體實施中,為了節(jié)約開銷,本發(fā)明實施例中的服務(wù)器流媒體服務(wù)提供方法,還包括:
步驟S205:所述工作進(jìn)程繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第一時間閾值。
在本發(fā)明一實施例中,當(dāng)對應(yīng)的工作進(jìn)程在確定客戶未對相應(yīng)的掛載點配置信息進(jìn)行更新時,也即從配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息與Nginx服務(wù)器中本地所存儲的相應(yīng)的掛載配置信息一致時,并非直接釋放與配置服務(wù)器的連接,而是繼續(xù)保持與所述配置服務(wù)器之間的連接一段時間,也即保持的時間長度達(dá)到預(yù)設(shè)的第一時間閾值,以在該時間段內(nèi)當(dāng)客戶對配置服務(wù)器中對應(yīng)的掛載點配置信息進(jìn)行更新時,可以不用再次與配置服務(wù)器建立連接,便可以獲取對應(yīng)的掛載點配置信息,從而可以減少與配置服務(wù)器之間的交互次數(shù),以節(jié)約資源。
其中,第一時間閾值可以根據(jù)實際的需要進(jìn)行設(shè)置,如設(shè)置為5分鐘或者10分鐘等,本發(fā)明在此不做限制。
在具體實施中,在確定從配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息與Nginx服務(wù)器中本地所存儲的相應(yīng)的掛載配置信息一致,Nginx服務(wù)器中對應(yīng)的工作進(jìn)程可以首先將從配置服務(wù)器中獲取的對應(yīng)的掛載點配置信息存儲在Nginx服務(wù)器中對應(yīng)的掛載點列表中,以在重啟且無法從配置服務(wù)器中獲取對應(yīng)的掛載點配置信息時,可以采用掛載點列表中存儲的掛載點配置信息對自身相應(yīng)的掛載點配置信息進(jìn)行更新,具體請參見圖3。
參見圖3,在Nginx服務(wù)器重啟后對相應(yīng)的掛載點配置信息的更新過程,可以采用如下的步驟實現(xiàn):
步驟S301:當(dāng)重啟時,獲取本地存儲的相應(yīng)客戶的掛載點配置文件,并解析得到對應(yīng)的掛載點配置信息。
在具體實施中,Nginx服務(wù)器可能由于故障等需要進(jìn)行重啟。當(dāng)重啟時,為了確保流媒體服務(wù)的正常進(jìn)行,Nginx服務(wù)器可以首先從本次所存儲的掛載點配置信息中獲取對應(yīng)的掛載點配置文件,并對所本地所存儲的掛載點配置文件進(jìn)行解析,以得到的對應(yīng)的掛載點配置信息。
步驟S302:基于解析得到的掛載點配置信息,創(chuàng)建對應(yīng)的工作進(jìn)程。
在具體實施中,Nginx服務(wù)器在解析得到本地所存儲的掛載點配置文件中的掛載配置信息時,可以根據(jù)解析得到的掛載點配置信息創(chuàng)建對應(yīng)的工作進(jìn)程,以維護(hù)對應(yīng)掛載點的配置信息并向用戶提供對應(yīng)的流媒體服務(wù)。
步驟S303:采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述配置服務(wù)器中獲取相應(yīng)客戶的掛載點配置信息。
在具體實施中,Nginx服務(wù)器在創(chuàng)建完成對應(yīng)的至少一個的工作進(jìn)程時,對應(yīng)的工作進(jìn)程可以首先與所述配置服務(wù)器建立連接,并獲取所述配置服務(wù)器中所存儲的對應(yīng)的掛載點配置信息,以在重啟成功后,將從所述配置服務(wù)器所獲取的對應(yīng)的掛載點配置信息與Nginx服務(wù)器本地所存儲的對應(yīng)的掛載點配置信息進(jìn)行比較,以確定在后續(xù)的步驟中是否對Nginx服務(wù)器本地所存儲的對應(yīng)的掛載點配置信息進(jìn)行更新。
步驟S304:所創(chuàng)建的對應(yīng)的工作進(jìn)程判斷是否成功從配置服務(wù)器中獲取相應(yīng)的掛載點配置信息;當(dāng)判斷結(jié)果為是時,可以執(zhí)行步驟S305;反之,則可以執(zhí)行步驟S306。
步驟S305:所述工作進(jìn)程采用本地存儲的掛載點列表中相應(yīng)的掛載點配置信息,對相應(yīng)的掛載點配置信息進(jìn)行更新。
在具體實施中,當(dāng)在配置服務(wù)器出現(xiàn)故障,或者與配置服務(wù)器之間的攔截異常等情形出現(xiàn),導(dǎo)致無法從配置服務(wù)器中成功獲取對應(yīng)的掛載點配置信息時,可以通過Nginx服務(wù)器本地存儲的掛載點列表中存儲的掛載點配置信息對相應(yīng)的掛載點配置信息進(jìn)行更新,從而可以降低對配置服務(wù)器的依賴,提高掛載點配置信息更新的靈活性。
步驟S306:判斷從所述配置服務(wù)器中獲取的掛載點配置信息與解析得到對應(yīng)的掛載點配置信息是否一致;當(dāng)判斷結(jié)果為是時,可以執(zhí)行步驟S308;反之,則可以執(zhí)行步驟S307。
步驟S307:采用所創(chuàng)建的對應(yīng)的工作進(jìn)程從所述配置服務(wù)器中獲取的掛載點配置信息對本地存儲的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
在具體實施中,當(dāng)重啟成功后,Nginx服務(wù)器所創(chuàng)建的對應(yīng)的工作進(jìn)程在確定從所述配置服務(wù)器中獲取的掛載點配置信息對本地存儲的掛載點配置文件中的掛載點配置信息
步驟S308:采用所創(chuàng)建的對應(yīng)的工作進(jìn)程繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第二時間閾值。
在具體實施中,上述的步驟S305至S307的操作過程可以參照步驟S202至S205中相應(yīng)部分的介紹,不再贅述。
上述對本發(fā)明實施例中的方法進(jìn)行了詳細(xì)的描述,下面將對上述的方法對應(yīng)的裝置進(jìn)行結(jié)介紹。
圖4示出了本發(fā)明實施例中的一種服務(wù)器的結(jié)構(gòu)。參見圖4,本發(fā)明實施例中的一種服務(wù)器400,可以包括多個工作進(jìn)程4011~401n(n為大于1的整數(shù)),其中:
參見圖5,在具體實施中,本發(fā)明實施例中的工作進(jìn)程500可以分別包括判斷子單元501、更新子單元502和服務(wù)子單元503,其中:
所述判斷子單元501,適于判斷是否需要對相應(yīng)的掛載點配置信息進(jìn)行更新;
所述更新子單元502,適于當(dāng)所述工作進(jìn)程判斷需要對相應(yīng)的掛載點配置信息進(jìn)行更新時,對所述掛載點配置信息進(jìn)行更新。
所述服務(wù)子單元503,適于在更新過程中,繼續(xù)提供配置信息未發(fā)生變化的掛載點上所承載的流媒體服務(wù)。
在具體實施中,所述服務(wù)子單元503,還適于當(dāng)相應(yīng)客戶的掛載點配置信息更新完畢時,繼續(xù)向用戶提供配置信息為發(fā)送變化的掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù)。
在具體實施中,所述更新子單元502,適于所述工作進(jìn)程從預(yù)設(shè)的配置服務(wù)器中獲取所述客戶對應(yīng)的掛載點配置信息;將所獲取的掛載點配置信息與本地存儲的所述客戶的掛載點配置信息進(jìn)行比較;當(dāng)確定所獲取的掛載點配置信息與本地存儲的所述客戶的掛載點配置信息不一致時,采用從所述配置服務(wù)器中獲取的所述客戶對應(yīng)的掛載點配置信息對本地存儲的相應(yīng)客戶的掛載點配置信息進(jìn)行更新。
在具體實施中,所述工作進(jìn)程500還包括存儲子單元504,其中:
所述存儲子單元504,適于當(dāng)確定所獲取的掛載點配置信息與本地存儲的相應(yīng)客戶的掛載點配置信息一致時,繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第一時間閾值。
在本發(fā)明一實施例中,所述工作進(jìn)程還包括存儲子,還適于當(dāng)采用所獲取的掛載點配置信息對本地所存儲的相應(yīng)客戶的掛載點配置信息進(jìn)行更新完畢時,所述工作進(jìn)程將從所述配置服務(wù)器中獲取的掛載點配置信息進(jìn)行存儲。
繼續(xù)參見圖4,在本發(fā)明一實施例中,所述服務(wù)器400還可以包括重啟單元402和工作進(jìn)程4021~402m,其中:
所述重啟單元402,適于當(dāng)重啟時,獲取本地存儲的相應(yīng)客戶的掛載點配置文件,并解析得到對應(yīng)的掛載點配置信息;基于解析得到的掛載點配置信息,創(chuàng)建對應(yīng)的工作進(jìn)程4021~402m;
所創(chuàng)建的對應(yīng)的工作進(jìn)程4021~402m,適于分別從所述配置服務(wù)器中獲取相應(yīng)客戶的掛載點配置信息;當(dāng)確定從所述配置服務(wù)器中獲取的掛載點配置信息與解析得到的掛載點配置信息不一致時,采用從所述配置服務(wù)器中獲取的掛載點配置信息對本地存儲的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
其中,工作進(jìn)程4021~402m為重啟后創(chuàng)建的工作進(jìn)程,工作進(jìn)程4011~401n為重啟前創(chuàng)建的工作進(jìn)程4011~401n。
在本發(fā)明一實施例中,為了節(jié)約資源,所創(chuàng)建的對應(yīng)的工作進(jìn)程4021~402m,分別適于當(dāng)確定所獲取的掛載點配置信息與本地存儲的所述客戶的掛載點配置信息一致時,還適于繼續(xù)保持與所述配置服務(wù)器之間的連接,直至達(dá)到預(yù)設(shè)的第二時間閾值。
在本發(fā)明一實施例中,為了降低對配置服務(wù)器的依賴程度,所創(chuàng)建的對應(yīng)的工作進(jìn)程4021~402m,還分別適于當(dāng)確定從所述配置服務(wù)器中獲取對應(yīng)的掛載點配置信息失敗時,采用從存儲至本地所述客戶對應(yīng)的掛載點配置信息,對本地存儲所述客戶對應(yīng)的掛載點配置文件中的掛載點配置信息進(jìn)行更新。
采用本發(fā)明實施例中的上述方案,采用動態(tài)更新掛載點配置信息的方式對掛載點配置信息進(jìn)行更新,當(dāng)確定需要對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用對應(yīng)的工作進(jìn)程對相應(yīng)客戶的掛載點配置信息進(jìn)行更新,并在對相應(yīng)客戶的掛載點配置信息進(jìn)行更新時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),可以避免因服務(wù)重啟所導(dǎo)致的流媒體服務(wù)中斷情形的發(fā)生,因而可以提高流媒體文件的播放質(zhì)量,提升用戶的使用體驗。
進(jìn)一步地,在相應(yīng)客戶的掛載點配置信息更新完畢時,采用所述工作進(jìn)程繼續(xù)向用戶提供配置信息未更新的掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù),由于在相應(yīng)客戶的掛載點配置信息更新完畢時,采用所述工作進(jìn)程繼續(xù)向用戶提供已有掛載點對應(yīng)的流媒體服務(wù),并向用戶提供新增掛載點對應(yīng)的流媒體服務(wù),可以避免配置信息未更新的掛載點對應(yīng)的流媒體文件的多次回源,因而可以節(jié)約資源。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
以上對本發(fā)明實施例的方法及系統(tǒng)做了詳細(xì)的介紹,本發(fā)明并不限于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。