一種提供網(wǎng)絡(luò)服務(wù)的方法、服務(wù)器及用戶終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種提供網(wǎng)絡(luò)服務(wù)的方法、服務(wù)器及用戶終端。
【背景技術(shù)】
[0002]如圖1所示,在互聯(lián)網(wǎng)商業(yè)中,網(wǎng)絡(luò)服務(wù)供應(yīng)商會根據(jù)其本身業(yè)務(wù)量的大小,將服務(wù)布置在不同數(shù)量的服務(wù)器中,同時,為了保證服務(wù)的正常運行,避免由于外界因素而導(dǎo)致服務(wù)器無法訪問的情況,供應(yīng)商經(jīng)常會在不同的機(jī)房中部署存儲了相同服務(wù)的服務(wù)器集群,以達(dá)到當(dāng)一個機(jī)房出現(xiàn)故障后,其他機(jī)房仍可以為用戶提供服務(wù)。而在互聯(lián)網(wǎng)服務(wù)操作流程上,用戶經(jīng)常需要發(fā)送多個請求來獲取一個網(wǎng)絡(luò)服務(wù),而且這些請求之間是相互關(guān)聯(lián)的,并且服務(wù)器處理每條請求時都會有先后順序。一般情況下,服務(wù)器在處理一條請求時需要基于上一條請求的處理數(shù)據(jù)。
[0003]例如,用戶想查看一個網(wǎng)頁廣告,必須先發(fā)送一條廣告投放請求至廣告資源服務(wù)器,廣告資源服務(wù)器隨即查看用戶曾經(jīng)看過該廣告的頻次記錄,如果用戶沒有超過該廣告的瀏覽頻次上限,則為用戶投放該廣告,當(dāng)該廣告在用戶的電腦上順利展示出來后,同時,用戶會發(fā)送下一條廣告曝光請求至其中一臺服務(wù)器,服務(wù)器收到曝光請求后,會給該用戶瀏覽了該廣告的頻次加1,當(dāng)用戶下次再訪問該廣告時,服務(wù)器會根據(jù)該用戶的歷史訪問頻次判斷是否給該用戶投放廣告。
[0004]然而,由于DNS的內(nèi)部機(jī)制,通常只有第一條被優(yōu)先處理的請求經(jīng)常會被發(fā)送到同一臺服務(wù)器上,而用戶的其他請求都是被web服務(wù)器隨機(jī)分配到資源服務(wù)器上的,并且,在不同的機(jī)房中都會存在具備相同服務(wù)的資源服務(wù)器。所以,很可能出現(xiàn)不同請求被發(fā)送到不同機(jī)房服務(wù)器的情況。以上面的例子來說,如果用戶的投放請求被發(fā)送到服務(wù)器A,而用戶的監(jiān)測請求被發(fā)送到服務(wù)器B,服務(wù)器A和服務(wù)器B中都含有該廣告資源,并且兩個服務(wù)器分別分布在不同的機(jī)房中,那么服務(wù)器B中該用戶的瀏覽頻次就會因為接收到了監(jiān)測請求而加1,而服務(wù)器A由于收到了投放請求,而沒有收到監(jiān)測請求,所以服務(wù)器A中該用戶的瀏覽頻次仍保持不變,這樣的話,當(dāng)用戶下一次在來訪問該廣告資源時,若投放請求仍被隨機(jī)發(fā)送至服務(wù)器A,則服務(wù)器A就會根據(jù)用戶的原始訪問頻次來判斷是否返回該廣告給用戶,而不是根據(jù)最新的頻次數(shù)據(jù)判斷,這樣就會造成廣告投放的錯誤,浪費投放資源。
[0005]如圖2所示,目前現(xiàn)有技術(shù)是通過各機(jī)房中的服務(wù)器之間的數(shù)據(jù)同步完成的。當(dāng)服務(wù)器啟動時,加載一個單獨線程,用來監(jiān)聽其他機(jī)房中服務(wù)器發(fā)來的消息,服務(wù)器間采用TCP/IP連接進(jìn)行數(shù)據(jù)傳輸,當(dāng)一臺機(jī)房中的服務(wù)器執(zhí)行請求完畢后,將此次請求的處理數(shù)據(jù)同步到其他機(jī)房的服務(wù)器中。此做法的缺點是,對于跨機(jī)房的服務(wù)器之間的數(shù)據(jù)同步速度還很慢,若用戶進(jìn)行頻繁訪問,此方法不能保證在用戶每次訪問期間完成數(shù)據(jù)的同步,而一旦數(shù)據(jù)同步?jīng)]有在用戶的下一次訪問前完成,很有可能造成服務(wù)器的誤判,以至于錯誤的處理用戶請求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題是一種提供網(wǎng)絡(luò)服務(wù)的方法及裝置,能夠提供對網(wǎng)絡(luò)服務(wù)請求處理的準(zhǔn)確性。
[0007]為解決上述技術(shù)問題,本發(fā)明的一種提供網(wǎng)絡(luò)服務(wù)的方法,包括:
[0008]服務(wù)器在接收到用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求后,對該第一請求進(jìn)行處理,存儲對所述第一請求的響應(yīng)數(shù)據(jù),將所述響應(yīng)數(shù)據(jù)返回給用戶終端,并在所述響應(yīng)數(shù)據(jù)中攜帶處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號。
[0009]進(jìn)一步地,所述方法還包括:
[0010]所述服務(wù)器在接收到針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求后,判斷所述后續(xù)請求中攜帶的機(jī)房號是否是所述服務(wù)器所在機(jī)房的機(jī)房號,如果是,則對該后續(xù)請求進(jìn)行處理;如果不是,則將該后續(xù)請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器。
[0011]進(jìn)一步地,所述將該后續(xù)請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器,包括:
[0012]所述服務(wù)器通過內(nèi)存數(shù)據(jù)隊列將所述后續(xù)請求轉(zhuǎn)發(fā)給所述后續(xù)請求中攜帶的機(jī)房號所對應(yīng)機(jī)房中的服務(wù)器。
[0013]進(jìn)一步地,所述方法還包括:
[0014]所述服務(wù)器在接收到請求后,判斷請求中是否攜帶有機(jī)房號,如果未攜帶有機(jī)房號,則確定接收到用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求;如果攜帶有機(jī)房號,則確定接收到針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求。
[0015]進(jìn)一步地,一種獲取網(wǎng)絡(luò)服務(wù)的方法,包括:
[0016]用戶終端針對網(wǎng)絡(luò)服務(wù)發(fā)送第一請求,接收服務(wù)器對該第一請求的響應(yīng)數(shù)據(jù),并存儲所述響應(yīng)數(shù)據(jù)中攜帶的處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號;
[0017]所述用戶終端在針對所述網(wǎng)絡(luò)服務(wù)發(fā)送后續(xù)請求時,在所述后續(xù)請求中攜帶所述處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號。
[0018]進(jìn)一步地,一種服務(wù)器,包括:接收單元、處理單元和響應(yīng)單元,其中:
[0019]所述接收單元,用于接收用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求;
[0020]所述處理單元,用于在所述接收單元接收到用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求后,對該第一請求進(jìn)行處理,存儲對所述第一請求的響應(yīng)數(shù)據(jù);
[0021]所述響應(yīng)單元,用于將所述響應(yīng)數(shù)據(jù)返回給用戶終端,并在所述響應(yīng)數(shù)據(jù)中攜帶處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號。
[0022]進(jìn)一步地,所述接收單元,還用于接收針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求;
[0023]所述處理單元,還用于在所述接收單元接收到針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求后,判斷所述后續(xù)請求中攜帶的機(jī)房號是否是所述服務(wù)器所在機(jī)房的機(jī)房號,如果是,則對該后續(xù)請求進(jìn)行處理;如果不是,則將該后續(xù)請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器。
[0024]進(jìn)一步地,所述處理單元將該后續(xù)請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器,包括:通過內(nèi)存數(shù)據(jù)隊列將所述后續(xù)請求轉(zhuǎn)發(fā)給所述后續(xù)請求中攜帶的機(jī)房號所對應(yīng)機(jī)房中的服務(wù)器。
[0025]進(jìn)一步地,所述接收單元,還用于在接收到請求后,判斷請求中是否攜帶有機(jī)房號,如果未攜帶有機(jī)房號,則確定接收到用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求;如果攜帶有機(jī)房號,則確定接收到針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求。
[0026]進(jìn)一步地,一種用戶終端,包括:第一請求單元、存儲單元和第二請求單元,其中:
[0027]所述第一請求單元,用于針對網(wǎng)絡(luò)服務(wù)發(fā)送第一請求,接收服務(wù)器對該第一請求的響應(yīng)數(shù)據(jù);
[0028]所述存儲單元,用于存儲所述響應(yīng)數(shù)據(jù)中攜帶的處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號;
[0029]所述第二請求單元,用于在針對所述網(wǎng)絡(luò)服務(wù)發(fā)送后續(xù)請求時,在所述后續(xù)請求中攜帶所述處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號。
[0030]綜上所述,本申請通過跨機(jī)房服務(wù)器之間的請求直接傳輸取代數(shù)據(jù)同步,來達(dá)到對請求進(jìn)行及時響應(yīng)的效果。利用此方法繞過服務(wù)器數(shù)據(jù)同步的過程,直接將每個請求發(fā)送至一個服務(wù)器來進(jìn)行處理,而后再進(jìn)行數(shù)據(jù)同步,不但加大了請求處理的準(zhǔn)確性,也縮短了請求反饋的時間,增加用戶體驗的同時保護(hù)服務(wù)供應(yīng)商的利益。
【附圖說明】
[0031]圖1為現(xiàn)有技術(shù)中單點多服務(wù)分布式部署的結(jié)構(gòu)圖;
[0032]圖2為現(xiàn)有技術(shù)中服務(wù)器間數(shù)據(jù)同步的結(jié)構(gòu)圖;
[0033]圖3為本申請的提供網(wǎng)絡(luò)服務(wù)的方法的流程圖;
[0034]圖4為本申請的提供網(wǎng)絡(luò)服務(wù)的系統(tǒng)的結(jié)構(gòu)圖;
[0035]圖5為本申請的服務(wù)器的架構(gòu)圖;
[0036]圖6為本申請的用戶終端的架構(gòu)圖。
【具體實施方式】
[0037]下文中將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0038]如圖3所示,本申請的提供網(wǎng)絡(luò)服務(wù)的方法,包括:
[0039]步驟301:域名解析服務(wù)器接收用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求(第一個需要被傳輸?shù)恼埱?,將與該第一請求匹配的網(wǎng)絡(luò)服務(wù)對應(yīng)的域名隨機(jī)解析到該網(wǎng)絡(luò)服務(wù)所對應(yīng)的多個IP上,然后隨機(jī)將該第一請求發(fā)給不同網(wǎng)絡(luò)服務(wù)IP對應(yīng)的不同服務(wù)器中的一臺;
[0040]步驟302:其中一臺服務(wù)器接收到第一請求后,對該請求進(jìn)行處理,對第一請求的響應(yīng)數(shù)據(jù)進(jìn)行存儲,并將響應(yīng)數(shù)據(jù)返回給用戶終端,并在響應(yīng)數(shù)據(jù)中攜帶處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號;
[0041]步驟303:用戶終端接收響應(yīng)數(shù)據(jù),發(fā)送針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求(第二請求),并在后續(xù)請求中攜帶響應(yīng)數(shù)據(jù)中攜帶的處理第一請求的服務(wù)器所在機(jī)房的機(jī)房號;
[0042]步驟304:域名解析服務(wù)器接收后續(xù)請求,隨機(jī)將該請求分配至不同網(wǎng)絡(luò)服務(wù)IP對應(yīng)的不同服務(wù)器中的一臺;
[0043]步驟305:接收到后續(xù)請求的服務(wù)器判斷該請求中攜帶的機(jī)房號是否是本機(jī)房的機(jī)房號,如果是,那么接收并處理此次請求;如果不是,則將該請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器。
[0044]服務(wù)器將后續(xù)請求轉(zhuǎn)發(fā)給對應(yīng)機(jī)房的服務(wù)器,包括:通過內(nèi)存數(shù)據(jù)隊列將后續(xù)請求轉(zhuǎn)發(fā)給后續(xù)請求中攜帶的機(jī)房號所對應(yīng)機(jī)房中的服務(wù)器。最終接收了后續(xù)請求的服務(wù)器對請求進(jìn)行處理,并將處理結(jié)果儲存,結(jié)束此次所有請求的響應(yīng),并同步自身數(shù)據(jù)給其他機(jī)房的服務(wù)器。
[0045]本申請中服務(wù)器在接收到域名解析服務(wù)器發(fā)送的請求后,判斷請求中是否攜帶有機(jī)房號,如果未攜帶有機(jī)房號,則確定接收到用戶終端針對網(wǎng)絡(luò)服務(wù)的第一請求;如果攜帶有機(jī)房號,則確定接收到針對網(wǎng)絡(luò)服務(wù)的后續(xù)請求。
[0046]本申請中還提供了一種獲取網(wǎng)絡(luò)服務(wù)的方法,所述方法包括:
[0047]步驟一:用戶終端針對網(wǎng)絡(luò)服務(wù)發(fā)送第一請求,接收服務(wù)器對該第一請求的響應(yīng)數(shù)據(jù),并存儲所述響應(yīng)數(shù)據(jù)中攜帶的處理該第一請求的服務(wù)器所在機(jī)房的機(jī)房號;
[0048]步驟二:用戶終端在針對網(wǎng)絡(luò)服務(wù)發(fā)送后續(xù)