一種節(jié)點(diǎn)列表訪問方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種節(jié)點(diǎn)列表訪問方法及裝置。
【背景技術(shù)】
[0002]隨著多媒體技術(shù)的飛速發(fā)展,可以采用多種方式進(jìn)行流媒體的傳輸以及播放,其中,P2P (Peer to Peer ;點(diǎn)對(duì)點(diǎn))流媒體系統(tǒng)即為一種常用的流媒體傳輸以及播放系統(tǒng)。
[0003]目前,當(dāng)點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的請(qǐng)求節(jié)點(diǎn)需要訪問服務(wù)器中保存的節(jié)點(diǎn)列表,以進(jìn)行節(jié)點(diǎn)連接以及從已建立連接關(guān)系的節(jié)點(diǎn)獲取數(shù)據(jù)時(shí),請(qǐng)求節(jié)點(diǎn)即向服務(wù)器發(fā)送節(jié)點(diǎn)列表請(qǐng)求消息,服務(wù)器即將該節(jié)點(diǎn)列表請(qǐng)求消息調(diào)度到本地的任意一線程上,通過該線程訪問節(jié)點(diǎn)列表?,F(xiàn)有技術(shù)中,對(duì)節(jié)點(diǎn)列表采用加鎖保護(hù)形式,即參閱圖1所示,當(dāng)服務(wù)器通過線程I響應(yīng)請(qǐng)求節(jié)點(diǎn)A的節(jié)點(diǎn)列表訪問消息,在時(shí)刻t訪問節(jié)點(diǎn)列表時(shí),該服務(wù)器中線程2響應(yīng)請(qǐng)求節(jié)點(diǎn)B的節(jié)點(diǎn)列表訪問消息,在時(shí)刻t也訪問同一個(gè)節(jié)點(diǎn)列表,由于節(jié)點(diǎn)列表處于加鎖保護(hù)狀態(tài),即該節(jié)點(diǎn)列表在同一時(shí)間僅允許被一個(gè)請(qǐng)求節(jié)點(diǎn)所訪問,因此,當(dāng)上述不同線程同時(shí)訪問同一個(gè)節(jié)點(diǎn)列表時(shí),會(huì)出現(xiàn)鎖競(jìng)爭(zhēng)問題,從而導(dǎo)致某些請(qǐng)求節(jié)點(diǎn)無法訪問節(jié)點(diǎn)列表的問題,從而大大降低了節(jié)點(diǎn)列表在單位時(shí)間內(nèi)的被訪問率(即單位時(shí)間內(nèi)實(shí)際被訪問的次數(shù)),進(jìn)而降低了系統(tǒng)性能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種節(jié)點(diǎn)列表訪問方法及裝置,用以解決現(xiàn)有技術(shù)點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,存在的節(jié)點(diǎn)列表在單位時(shí)間內(nèi)的被訪問率較低的問題。
[0005]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0006]一種節(jié)點(diǎn)列表訪問方法,應(yīng)用在點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,包括:
[0007]服務(wù)器接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息;
[0008]所述服務(wù)器根據(jù)所述節(jié)點(diǎn)列表訪問消息,獲取所述請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性;
[0009]所述服務(wù)器將所述請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至所述節(jié)點(diǎn)屬性對(duì)應(yīng)的線程上,通過所述線程訪問節(jié)點(diǎn)列表。
[0010]一種節(jié)點(diǎn)列表訪問裝置,應(yīng)用在點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,包括:
[0011]接收單元,用于接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息;
[0012]獲取單元,用于根據(jù)所述節(jié)點(diǎn)列表訪問消息,獲取所述請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性;
[0013]訪問單元,用于將所述請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至所述節(jié)點(diǎn)屬性對(duì)應(yīng)的線程上,通過所述線程訪問節(jié)點(diǎn)列表。
[0014]本發(fā)明實(shí)施例中,服務(wù)器接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息;根據(jù)該節(jié)點(diǎn)列表訪問消息,獲取請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性;以及將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至節(jié)點(diǎn)屬性對(duì)應(yīng)的線程上,通過該線程訪問節(jié)點(diǎn)列表。采用上述技術(shù)方案,將節(jié)點(diǎn)屬性相同的請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至同一個(gè)線程上,從而避免了不同線程訪問同一個(gè)節(jié)點(diǎn)列表時(shí)出現(xiàn)的鎖競(jìng)爭(zhēng)問題,保證了多個(gè)請(qǐng)求節(jié)點(diǎn)均能訪問服務(wù)器中的節(jié)點(diǎn)列表,有效提聞了系統(tǒng)性能。
【附圖說明】
[0015]圖1為現(xiàn)有技術(shù)中節(jié)點(diǎn)訪問節(jié)點(diǎn)列表時(shí)出現(xiàn)鎖競(jìng)爭(zhēng)問題示意圖;
[0016]圖2為本發(fā)明實(shí)施例中點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)結(jié)構(gòu)示意圖;
[0017]圖3為本發(fā)明實(shí)施例中節(jié)點(diǎn)列表訪問流程示意圖;
[0018]圖4為本發(fā)明實(shí)施例中節(jié)點(diǎn)列表訪問裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0019]為了解決現(xiàn)有技術(shù)點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,存在的節(jié)點(diǎn)列表在單位時(shí)間內(nèi)的被訪問率較低的問題。本發(fā)明實(shí)施例中,服務(wù)器接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息;根據(jù)該節(jié)點(diǎn)列表訪問消息,獲取請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性;以及將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至節(jié)點(diǎn)屬性對(duì)應(yīng)的線程上,通過該線程訪問節(jié)點(diǎn)列表。采用上述技術(shù)方案,將節(jié)點(diǎn)屬性相同的請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至同一個(gè)線程上,從而避免了不同線程訪問同一個(gè)節(jié)點(diǎn)列表時(shí)出現(xiàn)的鎖競(jìng)爭(zhēng)問題,保證了多個(gè)請(qǐng)求節(jié)點(diǎn)均能訪問服務(wù)器中的節(jié)點(diǎn)列表,有效提聞了系統(tǒng)性能。
[0020]本發(fā)明實(shí)施例應(yīng)用在點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,參閱圖2所示為本發(fā)明實(shí)施例中點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)結(jié)構(gòu)示意圖,其中,該點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中包含服務(wù)器,以及該服務(wù)器管轄下的多個(gè)節(jié)點(diǎn),下面以結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說明。
[0021]參閱圖3所示,本發(fā)明實(shí)施例中,獲取節(jié)點(diǎn)列表的詳細(xì)流程為:
[0022]步驟300:服務(wù)器接收請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息。
[0023]本發(fā)明實(shí)施例中,服務(wù)器本地管轄下的任意一節(jié)點(diǎn)(以下簡(jiǎn)稱請(qǐng)求節(jié)點(diǎn))需要與其他節(jié)點(diǎn)建立連接關(guān)系以獲取該其他節(jié)點(diǎn)的數(shù)據(jù)時(shí),即向上述服務(wù)器發(fā)送的節(jié)點(diǎn)列表訪問消肩、O
[0024]步驟310:服務(wù)器根據(jù)上述節(jié)點(diǎn)列表訪問消息,獲取請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性。
[0025]本發(fā)明實(shí)施例中,上述節(jié)點(diǎn)列表訪問消息中攜帶請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性。其中,該節(jié)點(diǎn)屬性包括節(jié)點(diǎn)的ISP (Internet Service Provider ;互聯(lián)網(wǎng)服務(wù)提供商)信息;節(jié)點(diǎn)標(biāo)識(shí)信息;節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串;節(jié)點(diǎn)的地理位置信息。
[0026]具體的,服務(wù)器根據(jù)請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息,獲取該節(jié)點(diǎn)列表訪問消息中攜帶的請(qǐng)求節(jié)點(diǎn)的ISP信息,如節(jié)點(diǎn)的ISP信息為運(yùn)營商A ;或者,服務(wù)器根據(jù)請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息,獲取該節(jié)點(diǎn)列表訪問消息中攜帶的節(jié)點(diǎn)標(biāo)識(shí)信息;或者,服務(wù)器根據(jù)請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息,獲取該節(jié)點(diǎn)列表訪問消息中攜帶的請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串;或者,服務(wù)器根據(jù)請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息,獲取該節(jié)點(diǎn)列表訪問消息中攜帶的請(qǐng)求節(jié)點(diǎn)的地理位置信息,如節(jié)點(diǎn)的地理位置信息為北京。
[0027]步驟320:服務(wù)器將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至節(jié)點(diǎn)屬性對(duì)應(yīng)的線程上,通過該線程訪問節(jié)點(diǎn)列表。
[0028]本發(fā)明實(shí)施例中,服務(wù)器由請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息中獲取的節(jié)點(diǎn)屬性不同,將該節(jié)點(diǎn)列表訪問消息調(diào)度至線程的過程不同,具體為:
[0029]當(dāng)服務(wù)器獲取請(qǐng)求節(jié)點(diǎn)的ISP信息時(shí),服務(wù)器獲取本地保存的第一映射關(guān)系表中與請(qǐng)求節(jié)點(diǎn)的ISP信息存在映射關(guān)系的線程標(biāo)識(shí);將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至上述獲取的線程標(biāo)識(shí)對(duì)應(yīng)的線程上。其中,該第一映射關(guān)系表包含了 ISP信息與線程標(biāo)識(shí)之間的映射關(guān)系。例如,ISP信息包含三種類型,分別為ISP1、ISP2和ISP3,服務(wù)器本地線程標(biāo)識(shí)分別為線程1、線程2和線程3,其中,ISPl與線程I存在映射關(guān)系,ISP2與線程2存在映射關(guān)系,ISP3與線程3存在映射關(guān)系,則當(dāng)請(qǐng)求節(jié)點(diǎn)的ISP信息為ISP2時(shí),將該請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至線程2上。
[0030]當(dāng)服務(wù)器獲取請(qǐng)求節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)信息時(shí),服務(wù)器根據(jù)本地的線程數(shù)目,對(duì)請(qǐng)求節(jié)點(diǎn)的標(biāo)識(shí)信息進(jìn)行取模運(yùn)算,生成請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的線程序號(hào);服務(wù)器獲取本地保存的第二映射關(guān)系表中與請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的線程序號(hào)存在映射關(guān)系的線程標(biāo)識(shí);服務(wù)器將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至上述獲取的線程標(biāo)識(shí)對(duì)應(yīng)的線程上。其中,該第二映射關(guān)系表包含了線程序號(hào)與線程標(biāo)識(shí)之間的映射關(guān)系。例如,請(qǐng)求節(jié)點(diǎn)的標(biāo)識(shí)信息為2,服務(wù)器本地線程標(biāo)識(shí)分別為線程1、線程2、線程3和線程4,根據(jù)本地線程數(shù)目4,對(duì)該標(biāo)識(shí)信息進(jìn)行取模運(yùn)算,即獲取對(duì)應(yīng)的線程序號(hào)為2,其中,線程序號(hào)I與線程I存在映射關(guān)系,線程序號(hào)2與線程2存在映射關(guān)系,線程序號(hào)3與線程3存在映射關(guān)系,線程序號(hào)4與線程4存在映射關(guān)系,則當(dāng)請(qǐng)求節(jié)點(diǎn)的標(biāo)識(shí)信息為2時(shí),將該請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至線程2上。
[0031]當(dāng)服務(wù)器獲取請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串時(shí),服務(wù)器獲取本地保存的第三映射關(guān)系表中與請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串存在映射關(guān)系的線程標(biāo)識(shí);將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至上述線程標(biāo)識(shí)對(duì)應(yīng)的線程上。其中,該第三映射關(guān)系表包含了節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串與線程標(biāo)識(shí)之間的映射關(guān)系。
[0032]具體的,服務(wù)器獲取請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串的方法為:月艮務(wù)器獲取請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻對(duì)應(yīng)的URL (Uniform Resource Locator ;統(tǒng)一資源定位器)地址;根據(jù)該URL地址,采用哈希算法,獲取請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的地址字符串。例如,請(qǐng)求節(jié)點(diǎn)當(dāng)前時(shí)刻正在播放視頻的URL地址為Tl,對(duì)該URL地址Tl采用哈希算法進(jìn)行運(yùn)算,獲取該當(dāng)前時(shí)刻正在播放視頻的地址字符串tl,服務(wù)器本地線程標(biāo)識(shí)分別為線程1、線程2和線程3,其中,地址字符串tl與線程I存在映射關(guān)系,地址字符串t2與線程2存在映射關(guān)系,地址字符串t3與線程3存在映射關(guān)系,則當(dāng)請(qǐng)求節(jié)點(diǎn)的當(dāng)前時(shí)刻正在播放視頻的地址字符串為11時(shí),將該請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至線程I上。
[0033]當(dāng)服務(wù)器獲取上述節(jié)點(diǎn)列表訪問消息中攜帶的請(qǐng)求節(jié)點(diǎn)的地理位置信息時(shí),服務(wù)器獲取本地保存的第四映射關(guān)系表中與請(qǐng)求節(jié)點(diǎn)的地理位置信息存在映射關(guān)系的線程標(biāo)識(shí);將請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至上述線程標(biāo)識(shí)對(duì)應(yīng)的線程上。其中,該第四映射關(guān)系表包含了地理位置信息與線程標(biāo)識(shí)之間的映射關(guān)系。例如,服務(wù)器本地線程標(biāo)識(shí)分別為線程1、線程2和線程3,其中,地理位置信息北京與線程I存在映射關(guān)系,地理位置信息上海與線程2存在映射關(guān)系,地理位置南京與線程3存在映射關(guān)系,則當(dāng)請(qǐng)求節(jié)點(diǎn)的地理位置信息為南京時(shí),將該請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至線程3上。
[0034]采用上述技術(shù)方案,將節(jié)點(diǎn)屬性相同的請(qǐng)求節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)列表訪問消息調(diào)度至服務(wù)器的同一個(gè)線程上,使得當(dāng)服務(wù)器的不同線程承載不同節(jié)點(diǎn)屬性的節(jié)點(diǎn)列表訪問消息,當(dāng)不同線程在同一個(gè)時(shí)刻同時(shí)訪問節(jié)點(diǎn)列表時(shí),不會(huì)出現(xiàn)鎖競(jìng)爭(zhēng)問題,避免了部分請(qǐng)求節(jié)點(diǎn)無法獲取節(jié)點(diǎn)列表的問題,有效提高了系統(tǒng)性能。
[0035]基于上述技術(shù)方案,參閱圖4所示,本發(fā)明實(shí)施例中還提供一種節(jié)點(diǎn)列表獲取裝置,該裝置包括接收單元40,獲取單元41,以及訪問單元42,其中:
[0