一種調(diào)度方法及服務(wù)器的制造方法
【專利摘要】本發(fā)明實施例公開了一種調(diào)度方法及服務(wù)器,包括:接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。采用本發(fā)明,可實現(xiàn)根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找到存儲目標數(shù)據(jù)的目標服務(wù)器,查找方法簡單,效率極高。
【專利說明】一種調(diào)度方法及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種調(diào)度方法及服務(wù)器。
【背景技術(shù)】
[0002]隨著電子技術(shù)的發(fā)展,服務(wù)器的功能越來越強大,但是服務(wù)器資源與各種業(yè)務(wù)需求的調(diào)度也成為服務(wù)器的一個重要研究方向。通常需要設(shè)置一個調(diào)度服務(wù)器來對客戶的各種業(yè)務(wù)需求進行調(diào)度,客戶的各種業(yè)務(wù)需求一般由對應(yīng)于該種業(yè)務(wù)的業(yè)務(wù)服務(wù)器提供相應(yīng)的業(yè)務(wù),例如對于影視業(yè)務(wù)則由提供影視業(yè)務(wù)的業(yè)務(wù)服務(wù)器提供。由于不同的業(yè)務(wù)對應(yīng)不同的業(yè)務(wù)服務(wù)器,或者同一個業(yè)務(wù)對應(yīng)不同的業(yè)務(wù)服務(wù)器,所以一個系統(tǒng)存在多個業(yè)務(wù)服務(wù)器,調(diào)度服務(wù)器則是根據(jù)客戶所需求的業(yè)務(wù),以及各個業(yè)務(wù)服務(wù)器當前的狀態(tài),從眾多的業(yè)務(wù)服務(wù)器中調(diào)度出對應(yīng)于客戶所需求的業(yè)務(wù)服務(wù)器,并為相應(yīng)的客戶服務(wù)。現(xiàn)有的調(diào)度服務(wù)器進行調(diào)度的方法為,在網(wǎng)絡(luò)層利用負載均衡算法,如Linux服務(wù)器集群系統(tǒng)(LVS,Linux Virtual Server)進行調(diào)度,首先在網(wǎng)絡(luò)層獲取傳入調(diào)度服務(wù)器的數(shù)據(jù)包,然后將數(shù)據(jù)包中所攜帶的數(shù)據(jù)信息轉(zhuǎn)化為數(shù)值,然后根據(jù)選定的固定算法,利用特定參數(shù)進行計算和調(diào)度,確定目標服務(wù)器,再把數(shù)據(jù)包轉(zhuǎn)發(fā)給相應(yīng)的目標服務(wù)器。因為傳統(tǒng)的調(diào)度方法算法固定,不能直接根據(jù)所接收的數(shù)據(jù)信息進行調(diào)度,處理方法單一,不夠靈活。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提供一種調(diào)度方法及服務(wù)器,可實現(xiàn)根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識確定存儲目標數(shù)據(jù)的目標服務(wù)器,確定方法簡單,處理方法靈活。
[0004]本發(fā)明實施例提供了一種調(diào)度方法,包括:
[0005]接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);
[0006]根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);
[0007]向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0008]相應(yīng)地,本發(fā)明實施例還提供了一種服務(wù)器,包括:
[0009]第一接收模塊,用于接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);
[0010]確定模塊,用于根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);
[0011]獲取返回模塊,用于向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0012]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識確定存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行固定的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,處理方法靈活。【專利附圖】
【附圖說明】
[0013]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0014]圖1是本發(fā)明實施例提供的一種調(diào)度方法的流程示意圖;
[0015]圖2是本發(fā)明實施例提供的另一種調(diào)度方法的流程示意圖;
[0016]圖3是本發(fā)明實施例提供的又一種調(diào)度方法的流程示意圖;
[0017]圖4是本發(fā)明實施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;
[0018]圖5是本發(fā)明實施例提供的另一種服務(wù)器的結(jié)構(gòu)示意圖;
[0019]圖6是本發(fā)明實施例提供的一種確定模塊的結(jié)構(gòu)示意圖;
[0020]圖7是本發(fā)明實施例提供的一種獲取返回模塊的結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0022]本發(fā)明實施例所述的調(diào)度方法可以實現(xiàn)在應(yīng)用層,用戶可以根據(jù)自己的需求具體的在應(yīng)用層定義調(diào)度程序,本端服務(wù)器根據(jù)用戶所定義的調(diào)度程序進行調(diào)度,本發(fā)明實施例中的服務(wù)器可以是虛擬服務(wù)器,目標服務(wù)器可以是真實服務(wù)器。
[0023]請參照圖1,是本發(fā)明實施例提供的一種調(diào)度方法的流程示意圖;如圖1所述,本實施例所述的一種調(diào)度方法包括步驟:
[0024]S100,接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);
[0025]具體實施例中,當客戶端需要獲取相應(yīng)的目標數(shù)據(jù)時,需要向服務(wù)器發(fā)送第一數(shù)據(jù)請求信息,服務(wù)器接收客戶端所發(fā)送的第一數(shù)據(jù)請求信息,需要說明的是,第一數(shù)據(jù)請求信息是客戶端用于獲取目標數(shù)據(jù)所發(fā)送的,第一數(shù)據(jù)請求信息可以是以數(shù)據(jù)包的形式存在,服務(wù)器和客戶端之間的交互信息方式可以是基于TCP數(shù)據(jù)連接,進一步的,第一數(shù)據(jù)請求信息中包括需要獲取的目標數(shù)據(jù)的第一數(shù)據(jù)標識,該第一數(shù)據(jù)標識用于標識目標數(shù)據(jù),在所有的客戶端和服務(wù)器中,目標數(shù)據(jù)的第一數(shù)據(jù)標識是相同的,不同的目標數(shù)據(jù)的數(shù)據(jù)標識不同,數(shù)據(jù)標識是唯一的,需要說明的是,第一數(shù)據(jù)請求信息中還可以包括客戶端的網(wǎng)絡(luò)速度,需要請求的數(shù)據(jù)文件大小。
[0026]SlOl,根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);
[0027]具體實施例中,本端服務(wù)器存儲了所有數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器,數(shù)據(jù)標識與目標服務(wù)器的對應(yīng)關(guān)系為,目標服務(wù)器存儲了數(shù)據(jù)標識所標識的目標數(shù)據(jù),具體的,本端存儲所有數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的方式可以是以數(shù)據(jù)庫的方式進行存儲,該數(shù)據(jù)庫可以為任務(wù)數(shù)據(jù)庫,在該任務(wù)數(shù)據(jù)庫中存儲每一個數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的地址信息或者目標服務(wù)器的服務(wù)器標識,進一步的,在任務(wù)數(shù)據(jù)庫中還存儲了當前目標服務(wù)器的狀態(tài),例如當前目標服務(wù)器的剩余帶寬或者當前目標服務(wù)器的負載等等;根據(jù)第一數(shù)據(jù)標識確定目標服務(wù)器的方法可以是,首先本端服務(wù)器獲得了第一數(shù)據(jù)標識就可以在任務(wù)數(shù)據(jù)庫中去查找第一數(shù)據(jù)標識對應(yīng)的目標服務(wù)器,具體的查找方法可以是在任務(wù)數(shù)據(jù)庫中遍歷所有的數(shù)據(jù)標識,當查詢到與第一數(shù)據(jù)標識匹配的數(shù)據(jù)標識時,就獲取該數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的信息,因為一個數(shù)據(jù)標識可能對應(yīng)多個目標服務(wù)器,所以查詢到多個目標服務(wù)器信息,該目標服務(wù)器信息包括當前該目標服務(wù)器的剩余帶寬以及當前負載情況,所以進一步結(jié)合各個目標服務(wù)器當前的負載情況以及剩余帶寬確定最適合的目標服務(wù)器,并將該目標服務(wù)器確定為與第一數(shù)據(jù)標識對應(yīng)的目標服務(wù)器。
[0028]S102,向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0029]具體實施例中,當獲得了目標服務(wù)器的服務(wù)器標識或者目標服務(wù)器的地址信息,就可以向相應(yīng)的目標服務(wù)器獲取需要的目標數(shù)據(jù),具體的獲取方式可以是,首先與目標服務(wù)器建立數(shù)據(jù)連接,并利用已經(jīng)建立的數(shù)據(jù)連接向目標服務(wù)器獲取目標數(shù)據(jù),目標服務(wù)器根據(jù)第一數(shù)據(jù)信息中的第一數(shù)據(jù)標識獲取相應(yīng)的目標數(shù)據(jù),并將目標數(shù)據(jù)返回給服務(wù)器,當服務(wù)器接收到目標服務(wù)器所返回的目標數(shù)據(jù)時,則將所接收到的目標數(shù)據(jù)返回給客戶端。
[0030]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0031]請參照圖2,是本發(fā)明實施例提供的另一種調(diào)度方法的流程示意圖;如圖2所述,本實施例所述的一種調(diào)度方法包括步驟:
[0032]S200,與所述客戶端建立TCP數(shù)據(jù)連接;
[0033]具體實施例中,當客戶端需要獲取目標數(shù)據(jù)時,首先需要與服務(wù)器建立TCP數(shù)據(jù)連接,需要說明的是,這里的服務(wù)器可以是虛擬服務(wù)器,該虛擬服務(wù)器的功能主要是進行任務(wù)調(diào)度,確定目標服務(wù)器。具體的,服務(wù)器與客戶端建立TCP數(shù)據(jù)連接的方式是,接收客戶端發(fā)送的握手信號SYN消息,服務(wù)器中的TCP處理模塊保存SYN消息中的信息,該信息中可以包括客戶端的IP地址,然后向客戶端回復(fù)握手確認信號SYN/ACK消息,當客戶端接收到SYN/ACK消息,再次回復(fù)連接確認信號ACK消息,TCP處理模塊再次將所接收的ACK消息進行保存,至此,客戶端與服務(wù)器之間的TCP數(shù)據(jù)連接建立完成。
[0034]S201,利用與所述客戶端所建立的TCP數(shù)據(jù)連接接收客戶端發(fā)送的第一數(shù)據(jù)請求信息。
[0035]具體實施例中,當客戶端與服務(wù)器之間的TCP數(shù)據(jù)連接建立完成之后,則服務(wù)器利用所建立的TCP數(shù)據(jù)連接進行發(fā)送和接收信息,在本步驟中,服務(wù)器利用所建立的TCP數(shù)據(jù)連接接收客戶端的第一數(shù)據(jù)請求信息,第一數(shù)據(jù)請求信息可以是以第一數(shù)據(jù)包的形式存在,所以當接收到第一數(shù)據(jù)包之后,去掉IP/TCP頭,然后交給應(yīng)用層進行分析和調(diào)度,確定目標服務(wù)器。[0036]S202,從所述第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識;
[0037]具體實施例中,從第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識的方法可以是,服務(wù)器的應(yīng)用程序在本端的網(wǎng)絡(luò)層解析出應(yīng)用數(shù)據(jù),然后利用共享內(nèi)存將應(yīng)用數(shù)據(jù)發(fā)送給應(yīng)用層模塊,應(yīng)用層再從中解析出數(shù)據(jù)標識以及其他數(shù)據(jù)。
[0038]S203,在任務(wù)數(shù)據(jù)庫中查詢與所述第一數(shù)據(jù)標識對應(yīng)的地址信息,并將所述地址信息表示的服務(wù)器作為所述目標服務(wù)器,所述任務(wù)數(shù)據(jù)庫中存儲至少一個數(shù)據(jù)標識以及每一個所述數(shù)據(jù)標識對應(yīng)的地址信息。
[0039]具體實施例中,任務(wù)數(shù)據(jù)庫中存儲了所有的數(shù)據(jù)標識以及與每一個數(shù)據(jù)標識所對應(yīng)的目標服務(wù)器的地址信息,根據(jù)該目標服務(wù)器的地址信息可以找到目標服務(wù)器,目標服務(wù)器存儲了數(shù)據(jù)標識所標識的數(shù)據(jù),所以根據(jù)數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的地址可以找到數(shù)據(jù)標識所標識的數(shù)據(jù),具體的,任務(wù)數(shù)據(jù)庫中,數(shù)據(jù)標識與地址信息的對應(yīng)關(guān)系可以是一個數(shù)據(jù)標識對應(yīng)一個地址信息,也可以是多個數(shù)據(jù)標識對應(yīng)一個地址信息,即是該地址信息表示的服務(wù)器存儲了多個數(shù)據(jù)標識所標識的數(shù)據(jù)。在任務(wù)數(shù)據(jù)庫中遍歷所有的數(shù)據(jù)標識,查詢到與第一數(shù)據(jù)標識匹配的數(shù)據(jù)標識時,則獲取該數(shù)據(jù)標識對應(yīng)的地址信息,并作為第一數(shù)據(jù)標識對應(yīng)的地址信息,該地址信息標識的服務(wù)器也即是目標服務(wù)器,該目標服務(wù)器存儲了第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),需要說明的是,該地址信息可以是IP地址信肩、O
[0040]S204,將查詢得到的與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第一數(shù)據(jù)包中,并將所述地址信息作為所述第一數(shù)據(jù)包的目標地址;
[0041]具體實施例中,第一數(shù)據(jù)請求信息可以是以第一數(shù)據(jù)包的形式存在,第一數(shù)據(jù)包可以是IP數(shù)據(jù)包,地址信息可以是IP地址,這里以IP數(shù)據(jù)包和IP地址為例進行說明,在該IP數(shù)據(jù)包中存在該IP數(shù)據(jù)包的源IP地址,還存在該IP數(shù)據(jù)包的目標IP地址,從客戶端接收到的IP數(shù)據(jù)包中的目標IP地址是本端服務(wù)器的IP地址。將從客戶端所接收的IP數(shù)據(jù)包進行轉(zhuǎn)發(fā)之前,需要修改IP數(shù)據(jù)包中的目標IP地址,所以將從任務(wù)數(shù)據(jù)庫中所查詢得到的與第一數(shù)據(jù)標識對應(yīng)的地址信息添加至IP數(shù)據(jù)包中,具體的添加方式可以是修改IP數(shù)據(jù)包中的目標IP地址,將原來的本端服務(wù)器IP地址修改為查詢到的與第一數(shù)據(jù)標識對應(yīng)的IP地址。
[0042]S205,根據(jù)所述第一數(shù)據(jù)包的目標地址,將所述第一數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第一數(shù)據(jù)標識查找所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),再由所述目標服務(wù)器返回所查找到所述目標數(shù)據(jù);
[0043]具體實施例中,本端服務(wù)器與目標服務(wù)器的信息交互之前,本端服務(wù)器需要與目標服務(wù)器建立TCP數(shù)據(jù)連接,具體的建立方式可以是,根據(jù)目標服務(wù)器的地址信息,向目標服務(wù)器發(fā)送握手信號SYN消息,目標服務(wù)器中的TCP處理模塊保存SYN消息中的信息,然后回復(fù)握手確認信號SYN/ACK消息,當本端服務(wù)器接收到SYN/ACK消息,再次回復(fù)連接確認信號ACK消息,至此,本端服務(wù)器與目標服務(wù)器之間的TCP數(shù)據(jù)連接建立完成,然后利用本端服務(wù)器與目標服務(wù)器之間所建立的TCP數(shù)據(jù)連接向目標服務(wù)器發(fā)送修改了目標地址的第一數(shù)據(jù)包,第一數(shù)據(jù)包到達目標服務(wù)器,目標服務(wù)器對所接收的第一數(shù)據(jù)包進行解析,讀取第一數(shù)據(jù)包中所包含的第一數(shù)據(jù)標識,并在目標服務(wù)器中查找第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),將所查找到的目標數(shù)據(jù)返回至服務(wù)器。具體的,目標數(shù)據(jù)返回的方式可以是以IP數(shù)據(jù)包的形式進行返回。
[0044]S206,接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0045]具體實施例中,本端服務(wù)器接收到目標服務(wù)器所返回的目標數(shù)據(jù),目標數(shù)據(jù)的返回方式可以是以IP數(shù)據(jù)包的形式進行返回,當接收到目標服務(wù)器所返回的IP數(shù)據(jù)包時,從本端服務(wù)器查詢客戶端的IP地址,再次將IP數(shù)據(jù)包中的目標IP地址修改為客戶端的IP地址,再次以IP數(shù)據(jù)包的形式發(fā)送至客戶端。
[0046]S207,啟動與備機之間的心跳線程,并利用所述心跳線程按照預(yù)設(shè)周期將本端的連接狀態(tài)信息發(fā)送至所述備機;以使所述備機根據(jù)所述連接狀態(tài)信息判斷本端是否出現(xiàn)故障,若本端出現(xiàn)故障,則所述備機轉(zhuǎn)換為主機模式。
[0047]具體實施例中,為了保證本端服務(wù)器在出現(xiàn)故障時,客戶端與目標服務(wù)器之間的信息交互不會中斷,可以為本端服務(wù)器配置備機,當本端服務(wù)器進行工作時,會啟動心跳線程,按照預(yù)設(shè)周期將主機的連接狀態(tài)信息發(fā)送至備機,因為數(shù)據(jù)傳輸頻繁,可以為主備機各安裝兩塊網(wǎng)卡,用其中一塊網(wǎng)卡專門傳輸心跳,當主機出現(xiàn)故障時,連接狀態(tài)信息可以反映,所以當備機從所接收的連接狀態(tài)信息中判斷出主機出現(xiàn)故障時,則備機應(yīng)用層或者網(wǎng)絡(luò)層進行調(diào)度,將任務(wù)調(diào)度至備機,備機變成主機模式,處理程序也變成主機模式,備機從存儲區(qū)讀取TCP/IP連接狀態(tài),繼續(xù)服務(wù),因為備機對于連接狀態(tài)有保存,所以客戶和目標服務(wù)器都不會發(fā)現(xiàn)主備切換。使用這種主備切換可以保證在本端服務(wù)器出現(xiàn)故障時,服務(wù)不會中斷,提高了用戶體驗。
[0048]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0049]請參照圖3,是本發(fā)明實施例提供的又一種調(diào)度方法的流程示意圖;如圖3所述,本實施例所述的一種調(diào)度方法包括步驟:
[0050]S300,接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);
[0051]具體實施例中,本發(fā)明實施例步驟S300,請參照圖1所示的實施例步驟S100,在此不進行贅述。
[0052]S301,根據(jù)所述第一數(shù)據(jù)標識查找目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);
[0053]具體實施例中,本發(fā)明實施例步驟S301,請參照圖1所示的實施例步驟S101,在此不進行贅述。
[0054]S302,向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0055]具體實施例中,本發(fā)明實施例步驟S302,請參照圖1所示的實施例步驟S102,在此不進行贅述。
[0056]S303,接收客戶端發(fā)送的第二數(shù)據(jù)包,所述第二數(shù)據(jù)包包括第二數(shù)據(jù)標識;
[0057]具體實施例中,當客戶端需要再次獲取數(shù)據(jù)時,就發(fā)送第二數(shù)據(jù)包,本端服務(wù)器接收客戶端所發(fā)送的第二數(shù)據(jù)包,客戶端與服務(wù)器之間的信息交互可以是基于已經(jīng)建立的TCP數(shù)據(jù)連接,也可以是基于重新建立的TCP數(shù)據(jù)連接,第二數(shù)據(jù)包可以是IP數(shù)據(jù)包,在該第二數(shù)據(jù)包中包括用于標識需要獲取的目標數(shù)據(jù)的第二數(shù)據(jù)標識,本端服務(wù)器接收到客戶端的第二數(shù)據(jù)包之后,對第二數(shù)據(jù)包進行解析,獲取第二數(shù)據(jù)標識。
[0058]S304,若所述第二數(shù)據(jù)標識與所述第一數(shù)據(jù)標識相同,則將與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第二數(shù)據(jù)包中,并將所述地址信息作為所述第二數(shù)據(jù)包的目標地址;
[0059]具體實施例中,若所解析出的第二數(shù)據(jù)標識與第一數(shù)據(jù)標識相同,則表明第一數(shù)據(jù)包和第二數(shù)據(jù)包需要到達的目標服務(wù)器相同,這時就不需要再次在任務(wù)數(shù)據(jù)庫中查詢第二數(shù)據(jù)標識對應(yīng)的地址信息,而是直接將已經(jīng)查詢到的第一數(shù)據(jù)標識對應(yīng)的地址信息添加到第二數(shù)據(jù)包中,在轉(zhuǎn)發(fā)第二數(shù)據(jù)包的過程中,減少從任務(wù)數(shù)據(jù)庫中查詢地址信息的步驟,從而減少了轉(zhuǎn)發(fā)時間,提高了效率,并且第二數(shù)據(jù)包也可以是以IP數(shù)據(jù)包的形式存在,所以直接將IP數(shù)據(jù)包中的目標IP地址修改為第一數(shù)據(jù)標識對應(yīng)的IP地址。
[0060]S305,根據(jù)所述第二數(shù)據(jù)包的目標地址將所述第二數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第二數(shù)據(jù)標識查找所述第二數(shù)據(jù)標識所標識的所述目標數(shù)據(jù),并返回所查找到的所述目標數(shù)據(jù);
[0061 ] 具體實施例中,向目標服務(wù)器發(fā)送第二數(shù)據(jù)包也可以基于TCP數(shù)據(jù)連接,這里的TCP數(shù)據(jù)連接可以是已經(jīng)建立的TCP數(shù)據(jù)連接,也可以是重新建立的TCP數(shù)據(jù)連接,第二數(shù)據(jù)包可以是IP數(shù)據(jù)包,所以將第二數(shù)據(jù)包發(fā)送至目標服務(wù)器的方式可以是利用建立的TCP數(shù)據(jù)連接,并根據(jù)IP數(shù)據(jù)包中的目標IP地址將IP數(shù)據(jù)包發(fā)送至目標服務(wù)器。IP數(shù)據(jù)包到達目標服務(wù)器,目標服務(wù)器對所接收的IP數(shù)據(jù)包進行解析,讀取IP數(shù)據(jù)包中所包含的第二數(shù)據(jù)標識,并在目標服務(wù)器查找第二數(shù)據(jù)標識所標識的目標數(shù)據(jù),將所查找到的目標數(shù)據(jù)返回至服務(wù)器。具體的,目標數(shù)據(jù)返回的方式可以是以IP數(shù)據(jù)包的形式進行返回。
[0062]S306,接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0063]具體實施例中,本端服務(wù)器接收到目標服務(wù)器所返回的目標數(shù)據(jù),目標數(shù)據(jù)的返回方式可以是以IP數(shù)據(jù)包的形式進行返回,當接收到目標服務(wù)器所返回的IP數(shù)據(jù)包時,從本端服務(wù)器查詢客戶端的IP地址,再次將IP數(shù)據(jù)包中的目標IP地址修改為客戶端的IP地址,再次以IP數(shù)據(jù)包的形式發(fā)送至客戶端。
[0064]進一步的,為了保證本端服務(wù)器在出現(xiàn)故障時,客戶端與目標服務(wù)器之間的信息交互不會中斷,可以為本端服務(wù)器配置備機,當本端服務(wù)器進行工作時,連接轉(zhuǎn)移模塊會啟動心跳線程,定時將主機的連接狀態(tài)信息發(fā)送至備機,因為數(shù)據(jù)傳輸頻繁,可以為主備機各安裝兩塊網(wǎng)卡,用其中一塊網(wǎng)卡專門傳輸心跳,當主機出現(xiàn)故障時,應(yīng)用層或者網(wǎng)絡(luò)層進行調(diào)度,將任務(wù)調(diào)度至備機,備機變成主機,處理程序變成主機模式,備機從存儲區(qū)讀取TCP/IP連接狀態(tài),繼續(xù)服務(wù),因為備機對于連接狀態(tài)有保存,所以客戶和目標服務(wù)器都不會發(fā)現(xiàn)主備切換。使用這種主備切換可以保證在本端服務(wù)器出現(xiàn)故障時,服務(wù)不會中斷,提高了用戶體驗。
[0065]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。[0066]下面闡述本發(fā)明實施例提供的一種服務(wù)器的具體實現(xiàn)。
[0067]請參照圖4,為本發(fā)明實施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。如圖4所示,本實施例所述的一種服務(wù)器包括:第一接收模塊100、查找模塊101和獲取返回模塊102。
[0068]第一接收模塊100,用于接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù);
[0069]具體實施例中,當客戶端需要獲取相應(yīng)的目標數(shù)據(jù)時,需要向服務(wù)器發(fā)送第一數(shù)據(jù)請求信息,服務(wù)器第一接收模塊100接收客戶端所發(fā)送的第一數(shù)據(jù)請求信息,需要說明的是,第一數(shù)據(jù)請求信息是客戶端用于獲取目標數(shù)據(jù)所發(fā)送的,第一數(shù)據(jù)請求信息可以是以數(shù)據(jù)包的形式存在,服務(wù)器和客戶端之間的交互信息方式可以是基于TCP數(shù)據(jù)連接,進一步的,第一數(shù)據(jù)請求信息中包括需要獲取的目標數(shù)據(jù)的第一數(shù)據(jù)標識,該第一數(shù)據(jù)標識用于標識目標數(shù)據(jù),在所有的客戶端和服務(wù)器中,目標數(shù)據(jù)的第一數(shù)據(jù)標識是相同的,不同的目標數(shù)據(jù)的數(shù)據(jù)標識不同,數(shù)據(jù)標識是唯一的。,需要說明的是,第一數(shù)據(jù)請求信息中還可以包括客戶端的網(wǎng)絡(luò)速度,需要請求的數(shù)據(jù)文件大小。
[0070]確定模塊101,用于根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù);
[0071]具體實施例中,本端服務(wù)器存儲了所有數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器,數(shù)據(jù)標識與目標服務(wù)器的對應(yīng)關(guān)系為,目標服務(wù)器存儲了數(shù)據(jù)標識所標識的目標數(shù)據(jù),具體的,本端存儲所有數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的方式可以是以數(shù)據(jù)庫的方式進行存儲,該數(shù)據(jù)庫可以為任務(wù)數(shù)據(jù)庫,在該任務(wù)數(shù)據(jù)庫中存儲每一個數(shù)據(jù)標識以及每一個數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的地址信息或者目標服務(wù)器的服務(wù)器標識,進一步的,在任務(wù)數(shù)據(jù)庫中還存儲了當前目標服務(wù)器的狀態(tài),例如當前目標服務(wù)器的剩余帶寬或者當前目標服務(wù)器的負載等等;確定模塊101根據(jù)第一數(shù)據(jù)標識確定目標服務(wù)器的方法可以是,首先本端服務(wù)器獲得了第一數(shù)據(jù)標識,確定模塊101就可以在任務(wù)數(shù)據(jù)庫中去查找第一數(shù)據(jù)標識對應(yīng)的目標服務(wù)器,具體的查找方法可以是在任務(wù)數(shù)據(jù)庫中遍歷所有的數(shù)據(jù)標識,當查詢到與第一數(shù)據(jù)標識匹配的數(shù)據(jù)標識時,就獲取該數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的信息,因為一個數(shù)據(jù)標識可能對應(yīng)多個目標服務(wù)器,所以查詢到多個目標服務(wù)器信息,該目標服務(wù)器信息包括當前該目標服務(wù)器的剩余帶寬以及當前負載情況,所以進一步結(jié)合各個目標服務(wù)器當前的負載情況以及剩余帶寬確定最適合的目標服務(wù)器,并將該目標服務(wù)器確定為與第一數(shù)據(jù)標識對應(yīng)的目標服務(wù)器。
[0072]獲取返回模塊102,用于向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0073]具體實施例中,當獲得了目標服務(wù)器的服務(wù)器標識或者目標服務(wù)器的地址信息,獲取返回模塊102就可以向相應(yīng)的目標服務(wù)器獲取需要的目標數(shù)據(jù),具體的獲取方式可以是,首先與目標服務(wù)器建立數(shù)據(jù)連接,并利用已經(jīng)建立的數(shù)據(jù)連接向目標服務(wù)器獲取目標數(shù)據(jù),目標服務(wù)器根據(jù)第一數(shù)據(jù)信息中的第一數(shù)據(jù)標識獲取相應(yīng)的目標數(shù)據(jù),并將目標數(shù)據(jù)返回給服務(wù)器,當獲取返回模塊102服務(wù)器接收到目標服務(wù)器所返回的目標數(shù)據(jù)時,則將所接收到的目標數(shù)據(jù)返回給客戶端。
[0074]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0075]請參照圖5,為本發(fā)明實施例提供的另一種服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,本實施例所述的另一種服務(wù)器包括:第一接收模塊100、查找模塊101、獲取返回模塊102、建立模塊103、第二接收模塊104、添加模塊105、發(fā)送模塊106、接收返回模塊107和啟動發(fā)送模塊108 ;其中,第一接收模塊100、查找模塊101和獲取返回模塊102請參照圖4的描述,在此不再贅述。
[0076]建立模塊103,用于與所述客戶端建立TCP數(shù)據(jù)連接;
[0077]具體實施例中,當客戶端需要獲取目標數(shù)據(jù)時,首先建立模塊103需要與服務(wù)器建立TCP數(shù)據(jù)連接,需要說明的是,這里的服務(wù)器可以是虛擬服務(wù)器,該虛擬服務(wù)器的功能主要是進行任務(wù)調(diào)度,確定目標服務(wù)器。具體的,服務(wù)器與客戶端建立TCP數(shù)據(jù)連接的方式是,建立模塊103接收客戶端發(fā)送的握手信號SYN消息,服務(wù)器中的TCP處理模塊保存SYN消息中的信息,該信息中可以包括客戶端的IP地址,然后建立模塊103向客戶端回復(fù)握手確認信號SYN/ACK消息,當客戶端接收到SYN/ACK消息,再次回復(fù)連接確認信號ACK消息,TCP處理模塊再次將所接收的ACK消息進行保存,至此,客戶端與服務(wù)器之間的TCP數(shù)據(jù)連接建立完成。
[0078]第二接收模塊104,用于接收客戶端所發(fā)送的第二數(shù)據(jù)包,所述第二數(shù)據(jù)包包括第二數(shù)據(jù)標識;
[0079]具體實施例中,當客戶端需要再次獲取數(shù)據(jù)時,就發(fā)送第二數(shù)據(jù)包,本端服務(wù)器第二接收模塊104接收客戶端所發(fā)送的第二數(shù)據(jù)包,客戶端與服務(wù)器之間的信息交互可以是基于已經(jīng)建立的TCP數(shù)據(jù)連接,也可以是基于重新建立的TCP數(shù)據(jù)連接,第二數(shù)據(jù)包可以是IP數(shù)據(jù)包,在該第二數(shù)據(jù)包中包括用于標識需要獲取的目標數(shù)據(jù)的第二數(shù)據(jù)標識,本端服務(wù)器第二接收模塊104接收到客戶端的第二數(shù)據(jù)包之后,對第二數(shù)據(jù)包進行解析,獲取第二數(shù)據(jù)標識。
[0080]添加模塊105,用于若所述第二數(shù)據(jù)標識與所述第一數(shù)據(jù)標識相同,則將與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第二數(shù)據(jù)包中,并將所述地址信息作為所述第二數(shù)據(jù)包的目標地址;
[0081]具體實施例中,若所解析出的第二數(shù)據(jù)標識與第一數(shù)據(jù)標識相同,則表明第一數(shù)據(jù)包和第二數(shù)據(jù)包需要到達的目標服務(wù)器相同,這時就不需要再次在任務(wù)數(shù)據(jù)庫中查詢第二數(shù)據(jù)標識對應(yīng)的地址信息,而是添加模塊105直接將已經(jīng)查詢到的第一數(shù)據(jù)標識對應(yīng)的地址信息添加到第二數(shù)據(jù)包中,在轉(zhuǎn)發(fā)第二數(shù)據(jù)包的過程中,減少從任務(wù)數(shù)據(jù)庫中查詢地址信息的步驟,從而減少了轉(zhuǎn)發(fā)時間,提高了效率,并且第二數(shù)據(jù)包也可以是以IP數(shù)據(jù)包的形式存在,所以添加模塊105直接將IP數(shù)據(jù)包中的目標IP地址修改為第一數(shù)據(jù)標識對應(yīng)的IP地址。
[0082]發(fā)送模塊106,用于根據(jù)所述第二數(shù)據(jù)包的目標地址將所述第二數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第二數(shù)據(jù)標識查找所述第二數(shù)據(jù)標識所標識的所述目標數(shù)據(jù),并返回所查找到的所述目標數(shù)據(jù);
[0083]具體實施例中,發(fā)送模塊106向目標服務(wù)器發(fā)送第二數(shù)據(jù)包也可以基于TCP數(shù)據(jù)連接,這里的TCP數(shù)據(jù)連接可以是已經(jīng)建立的TCP數(shù)據(jù)連接,也可以是重新建立的TCP數(shù)據(jù)連接,第二數(shù)據(jù)包可以是IP數(shù)據(jù)包,所以發(fā)送模塊106將第二數(shù)據(jù)包發(fā)送至目標服務(wù)器的方式可以是利用建立的TCP數(shù)據(jù)連接,并根據(jù)IP數(shù)據(jù)包中的目標IP地址將IP數(shù)據(jù)包發(fā)送至目標服務(wù)器。IP數(shù)據(jù)包到達目標服務(wù)器,目標服務(wù)器對所接收的IP數(shù)據(jù)包進行解析,讀取IP數(shù)據(jù)包中所包含的第二數(shù)據(jù)標識,并根據(jù)第二數(shù)據(jù)標識查找第二數(shù)據(jù)標識所標識的目標數(shù)據(jù),將所查找到的目標數(shù)據(jù)返回至服務(wù)器。具體的,目標數(shù)據(jù)返回的方式可以是以IP數(shù)據(jù)包的形式進行返回。
[0084]接收返回模塊107,用于接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0085]具體實施例中,本端服務(wù)器接收返回模塊107接收到目標服務(wù)器所返回的目標數(shù)據(jù),目標數(shù)據(jù)的返回方式可以是以IP數(shù)據(jù)包的形式進行返回,當接收到目標服務(wù)器所返回的IP數(shù)據(jù)包時,接收返回模塊107從本端服務(wù)器查詢客戶端的IP地址,再次將IP數(shù)據(jù)包中的目標IP地址修改為客戶端的IP地址,再次以IP數(shù)據(jù)包的形式發(fā)送至客戶端。
[0086]啟動發(fā)送模塊108,用于啟動與備機之間的心跳線程,并利用所述心跳線程按照預(yù)設(shè)周期將本端的連接狀態(tài)信息發(fā)送至所述備機;以使所述備機根據(jù)所述連接狀態(tài)信息判斷本端是否出現(xiàn)故障,若本端出現(xiàn)故障,則所述備機轉(zhuǎn)換為主機模式。
[0087]具體實施例中,為了保證本端服務(wù)器在出現(xiàn)故障時,客戶端與目標服務(wù)器之間的信息交互不會中斷,可以為本端服務(wù)器配置備機,當本端服務(wù)器進行工作時,啟動發(fā)送模塊108會啟動心跳線程,按照預(yù)設(shè)周期將主機的連接狀態(tài)信息發(fā)送至備機,因為數(shù)據(jù)傳輸頻繁,可以為主備機各安裝兩塊網(wǎng)卡,用其中一塊網(wǎng)卡專門傳輸心跳,當主機出現(xiàn)故障時,連接狀態(tài)信息可以反映,所以當備機從所接收的連接狀態(tài)信息中判斷出主機出現(xiàn)故障時,則備機應(yīng)用層或者網(wǎng)絡(luò)層進行調(diào)度,將任務(wù)調(diào)度至備機,備機變成主機模式,處理程序也變成主機模式,備機從存儲區(qū)讀取TCP/IP連接狀態(tài),繼續(xù)服務(wù),因為備機對于連接狀態(tài)有保存,所以客戶和目標服務(wù)器都不會發(fā)現(xiàn)主備切換。使用這種主備切換可以保證在本端服務(wù)器出現(xiàn)故障時,服務(wù)不會中斷,提高了用戶體驗。
[0088]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0089]請參照圖6,是本發(fā)明實施例提供的一種查找模塊的結(jié)構(gòu)示意圖;如圖6所示,本實施例所述的一種查找模塊101包括解析單元1010和查詢單元1011。
[0090]解析單元1010,從所述第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識;
[0091]具體實施例中,解析單元1010從第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識的方法可以是,服務(wù)器的應(yīng)用程序在本端的網(wǎng)絡(luò)層解析出應(yīng)用數(shù)據(jù),然后利用共享內(nèi)存將應(yīng)用數(shù)據(jù)發(fā)送給應(yīng)用層模塊,應(yīng)用層再從中解析出數(shù)據(jù)標識以及其他數(shù)據(jù)
[0092]查詢單元1011,在任務(wù)數(shù)據(jù)庫中查詢與所述第一數(shù)據(jù)標識對應(yīng)的地址信息,并將所述地址信息表示的服務(wù)器作為所述目標服務(wù)器,所述任務(wù)數(shù)據(jù)庫中存儲至少一個數(shù)據(jù)標識以及每一個所述數(shù)據(jù)標識對應(yīng)的地址信息。
[0093]具體實施例中,任務(wù)數(shù)據(jù)庫中存儲了所有的數(shù)據(jù)標識以及與每一個數(shù)據(jù)標識所對應(yīng)的目標服務(wù)器的地址信息,根據(jù)該目標服務(wù)器的地址信息可以找到目標服務(wù)器,目標服務(wù)器存儲了數(shù)據(jù)標識所標識的數(shù)據(jù),所以根據(jù)數(shù)據(jù)標識對應(yīng)的目標服務(wù)器的地址可以找到數(shù)據(jù)標識所標識的數(shù)據(jù),具體的,任務(wù)數(shù)據(jù)庫中,數(shù)據(jù)標識與地址信息的對應(yīng)關(guān)系可以是一個數(shù)據(jù)標識對應(yīng)一個地址信息,也可以是多個數(shù)據(jù)標識對應(yīng)一個地址信息,即是該地址信息表示的服務(wù)器存儲了多個數(shù)據(jù)標識所標識的數(shù)據(jù)。查詢單元1011在任務(wù)數(shù)據(jù)庫中遍歷所有的數(shù)據(jù)標識,查詢到與第一數(shù)據(jù)標識匹配的數(shù)據(jù)標識時,則獲取該數(shù)據(jù)標識對應(yīng)的地址信息,并作為第一數(shù)據(jù)標識對應(yīng)的地址信息,該地址信息標識的服務(wù)器也即是目標服務(wù)器,該目標服務(wù)器存儲了第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),需要說明的是,該地址信息可以是IP地址彳目息。
[0094]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0095]請參照圖7,是本發(fā)明實施例提供的一種獲取返回模塊的結(jié)構(gòu)示意圖;如圖7所示,本實施例所述的一種獲取返回模塊102包括添加單元1020、發(fā)送單元1021和接收返回單元1022。
[0096]添加單元1020,用于將查詢得到的與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第一數(shù)據(jù)包中,并將所述地址信息作為所述第一數(shù)據(jù)包的目標地址;
[0097]具體實施例中,第一數(shù)據(jù)請求信息可以是以第一數(shù)據(jù)包的形式存在,第一數(shù)據(jù)包可以是IP數(shù)據(jù)包,地址信息可以是IP地址,這里以IP數(shù)據(jù)包和IP地址為例進行說明,在該IP數(shù)據(jù)包中存在該IP數(shù)據(jù)包的源IP地址,還存在該IP數(shù)據(jù)包的目標IP地址,從客戶端接收到的IP數(shù)據(jù)包中的目標IP地址是本端服務(wù)器的IP地址。將從客戶端所接收的IP數(shù)據(jù)包進行轉(zhuǎn)發(fā)之前,需要修改IP數(shù)據(jù)包中的目標IP地址,所以添加單元1020將從任務(wù)數(shù)據(jù)庫中所查詢得到的與第一數(shù)據(jù)標識對應(yīng)的地址信息添加至IP數(shù)據(jù)包中,具體的添加方式可以是修改IP數(shù)據(jù)包中的目標IP地址,將原來的本端服務(wù)器IP地址修改為查詢到的與第一數(shù)據(jù)標識對應(yīng)的IP地址。
[0098]發(fā)送單元1021,根據(jù)所述第一數(shù)據(jù)包的目標地址,將所述第一數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第一數(shù)據(jù)標識查找所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),再由所述目標服務(wù)器返回所查找到的所述目標數(shù)據(jù);
[0099]具體實施例中,本端服務(wù)器與目標服務(wù)器的信息交互之前,本端服務(wù)器發(fā)送單元1021需要與目標服務(wù)器建立TCP數(shù)據(jù)連接,具體的建立方式可以是,根據(jù)目標服務(wù)器的地址信息,向目標服務(wù)器發(fā)送握手信號SYN消息,目標服務(wù)器中的TCP處理模塊保存SYN消息中的信息,然后回復(fù)握手確認信號SYN/ACK消息,當本端服務(wù)器接收到SYN/ACK消息,再次回復(fù)連接確認信號ACK消息,至此,本端服務(wù)器與目標服務(wù)器之間的TCP數(shù)據(jù)連接建立完成,然后發(fā)送單元1021利用本端服務(wù)器與目標服務(wù)器之間所建立的TCP數(shù)據(jù)連接向目標服務(wù)器發(fā)送修改了目標地址的第一數(shù)據(jù)包,第一數(shù)據(jù)包到達目標服務(wù)器,目標服務(wù)器對所接收的第一數(shù)據(jù)包進行解析,讀取第一數(shù)據(jù)包中所包含的第一數(shù)據(jù)標識,并根據(jù)第一數(shù)據(jù)標識查找第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),將所查找到的目標數(shù)據(jù)返回至服務(wù)器。具體的,目標數(shù)據(jù)返回的方式可以是以IP數(shù)據(jù)包的形式進行返回。
[0100]接收返回單元1022,接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
[0101]具體實施例中,本端服務(wù)器接收返回單元1022接收到目標服務(wù)器所返回的目標數(shù)據(jù),目標數(shù)據(jù)的返回方式可以是以IP數(shù)據(jù)包的形式進行返回,接收返回單元1022當接收到目標服務(wù)器所返回的IP數(shù)據(jù)包時,從本端服務(wù)器查詢客戶端的IP地址,再次將IP數(shù)據(jù)包中的目標IP地址修改為客戶端的IP地址,再次以IP數(shù)據(jù)包的形式發(fā)送至客戶端。
[0102]本發(fā)明實施例中,根據(jù)第一數(shù)據(jù)請求信息中的數(shù)據(jù)標識查找存儲目標數(shù)據(jù)的目標服務(wù)器,并向目標服務(wù)器獲取所需要的目標數(shù)據(jù),這種調(diào)度方法不需要進行復(fù)雜的算法確定存儲目標數(shù)據(jù)的目標服務(wù)器,簡單易行,效率極高。
[0103]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0104]本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進行順序調(diào)整、合并和刪減。
[0105]本發(fā)明實施例終端中的模塊或單元可以根據(jù)實際需要進行合并、劃分和刪減。
[0106]本發(fā)明實施例的微控制器等部件,可以以通用集成電路(如中央處理器CPU),或以專用集成電路(ASIC)來實現(xiàn)。
[0107]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種調(diào)度方法,其特征在于,所述方法包括: 接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù); 根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù); 向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一數(shù)據(jù)標識確定目標服務(wù)器,包括: 從所述第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識; 在任務(wù)數(shù)據(jù)庫中查詢與所述第一數(shù)據(jù)標識對應(yīng)的地址信息,并將所述地址信息表示的服務(wù)器作為所述目標服務(wù)器,所述任務(wù)數(shù)據(jù)庫中存儲至少一個數(shù)據(jù)標識以及每一個所述數(shù)據(jù)標識對應(yīng)的地址信息。
3.如權(quán)利要求2所述的方法,其特征在于,所述第一數(shù)據(jù)請求信息以第一數(shù)據(jù)包的形式存在,所述向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端,包括: 將查詢得到的與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第一數(shù)據(jù)包中,并將所述地址信息作為所述第一數(shù)據(jù)包的目標地址; 根據(jù)所述第一數(shù)據(jù)包的目標地址,將所述第一數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第一數(shù)據(jù)標識查找所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),再由所述目標服務(wù)器返回所查找到的所述目標數(shù)據(jù); 接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
4.如權(quán)利要求3所述的方法,其特征在于,所述接收所述目標服務(wù)器所返回的目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端之后,還包括: 接收客戶端發(fā)送的第二數(shù)據(jù)包,所述第二數(shù)據(jù)包包括第二數(shù)據(jù)標識; 若所述第二數(shù)據(jù)標識與所述第一數(shù)據(jù)標識相同,則將與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第二數(shù)據(jù)包中,并將所述地址信息作為所述第二數(shù)據(jù)包的目標地址; 根據(jù)所述第二數(shù)據(jù)包的目標地址將所述第二數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第二數(shù)據(jù)標識查找所述第二數(shù)據(jù)標識所標識的所述目標數(shù)據(jù),并返回所查找到的所述目標數(shù)據(jù); 接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
5.如權(quán)利要求1至4任一項所述的方法,其特征在于,所述接收客戶端發(fā)送的第一數(shù)據(jù)請求信息之前,還包括: 與所述客戶端建立TCP數(shù)據(jù)連接; 所述接收客戶端發(fā)送的第一數(shù)據(jù)請求信息包括: 利用與所述客戶端所建立的TCP數(shù)據(jù)連接接收客戶端發(fā)送的第一數(shù)據(jù)請求信息。
6.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 啟動與備機之間的心跳線程,并利用所述心跳線程按照預(yù)設(shè)周期將本端的連接狀態(tài)信息發(fā)送至所述備機;以使所述備機根據(jù)所述連接狀態(tài)信息判斷本端是否出現(xiàn)故障,若本端出現(xiàn)故障,則所述備機轉(zhuǎn)換為主機模式。
7.一種服務(wù)器,其特征在于,所述服務(wù)器包括:第一接收模塊,用于接收客戶端發(fā)送的第一數(shù)據(jù)請求信息,所述第一數(shù)據(jù)請求信息包括第一數(shù)據(jù)標識,所述第一數(shù)據(jù)請求信息用于獲取所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù); 確定模塊,用于根據(jù)所述第一數(shù)據(jù)標識查找目標服務(wù)器,所述目標服務(wù)器存儲所述目標數(shù)據(jù); 獲取返回模塊,用于向所述目標服務(wù)器獲取所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
8.如權(quán)利要求7所述的服務(wù)器,其特征在于,所述查找模塊包括: 解析單元,用于從所述第一數(shù)據(jù)請求信息中解析出第一數(shù)據(jù)標識; 查詢單元,用于在任務(wù)數(shù)據(jù)庫中查詢與所述第一數(shù)據(jù)標識對應(yīng)的地址信息,并將所述地址信息表示的服務(wù)器作為所述目標服務(wù)器,所述任務(wù)數(shù)據(jù)庫中存儲至少一個數(shù)據(jù)標識以及每一個所述數(shù)據(jù)標識對應(yīng)的地址信息。
9.如權(quán)利要求8所述的服務(wù)器,其特征在于,所述第一數(shù)據(jù)請求信息以第一數(shù)據(jù)包的形式存在,所述獲取返回模塊包括: 添加單元,用于將查詢得到的與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第一數(shù)據(jù)包中,并將所述地址信息作為所述第一數(shù)據(jù)包的目標地址; 發(fā)送單元,用于根據(jù)所述第一數(shù)據(jù)包的目標地址,將所述第一數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第一數(shù)據(jù)標識查找所述第一數(shù)據(jù)標識所標識的目標數(shù)據(jù),再由所述目標服 務(wù)器返回所查找到的所述目標數(shù)據(jù); 接收返回單元,用于接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
10.如權(quán)利要求9所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 第二接收模塊,用于接收客戶端所發(fā)送的第二數(shù)據(jù)包,所述第二數(shù)據(jù)包包括第二數(shù)據(jù)標識; 添加模塊,用于若所述第二數(shù)據(jù)標識與所述第一數(shù)據(jù)標識相同,則將與所述第一數(shù)據(jù)標識對應(yīng)的地址信息添加至所述第二數(shù)據(jù)包中,并將所述地址信息作為所述第二數(shù)據(jù)包的目標地址; 發(fā)送模塊,用于根據(jù)所述第二數(shù)據(jù)包的目標地址將所述第二數(shù)據(jù)包發(fā)送至所述目標服務(wù)器,以使所述目標服務(wù)器根據(jù)所述第二數(shù)據(jù)標識查找所述第二數(shù)據(jù)標識所標識的所述目標數(shù)據(jù),并返回所查找到的所述目標數(shù)據(jù); 接收返回模塊,用于接收所述目標服務(wù)器所返回的所述目標數(shù)據(jù),并將所述目標數(shù)據(jù)返回至所述客戶端。
11.如權(quán)利要求7至10任一項所述服務(wù)器,其特征在于,所述服務(wù)器還包括: 建立模塊,用于與所述客戶端建立TCP數(shù)據(jù)連接; 所述第一接收模塊具體用于利用與所述客戶端所建立的TCP數(shù)據(jù)連接接收客戶端發(fā)送的第一數(shù)據(jù)請求信息。
12.如權(quán)利要求7所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 啟動發(fā)送模塊,用于啟動與備機之間的心跳線程,并利用所述心跳線程按照預(yù)設(shè)周期將本端的連接狀態(tài)信息發(fā)送至所述備機;以使所述備機根據(jù)所述連接狀態(tài)信息判斷本端是否出現(xiàn)故障,若本端出現(xiàn)故障,則所述備機轉(zhuǎn)換為主機模式。
【文檔編號】H04L29/06GK103905526SQ201410077696
【公開日】2014年7月2日 申請日期:2014年3月5日 優(yōu)先權(quán)日:2014年3月5日
【發(fā)明者】夏浪 申請人:深圳市同洲電子股份有限公司