本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種服務(wù)器集群處理系統(tǒng)及方法。
背景技術(shù):
面向客戶端的服務(wù)器可以直接響應(yīng)客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,如果業(yè)務(wù)請(qǐng)求中具有大量視圖處理請(qǐng)求,這些請(qǐng)求需要大量的計(jì)算處理,客戶端事件處理中包括大量數(shù)據(jù)的抽出、計(jì)算、生成處理,需要使用大量的系統(tǒng)資源。因此,直接面向客戶端的服務(wù)器的工作負(fù)擔(dān)將急劇增大,可能導(dǎo)致處理不及時(shí)或死機(jī)等情況的發(fā)生。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種服務(wù)器集群處理系統(tǒng)及方法,通過(guò)和連接服務(wù)器相連的前端服務(wù)器處理視圖注冊(cè)類客戶端事件,實(shí)現(xiàn)了通過(guò)前端服務(wù)器分擔(dān)直接面向客戶端的連接服務(wù)器的工作負(fù)擔(dān),提高了服務(wù)器系統(tǒng)的處理效率,保證了客戶端事件的處理速度和服務(wù)質(zhì)量。
一方面,本發(fā)明提供了一種服務(wù)器集群處理系統(tǒng),包括:連接服務(wù)器、消息服務(wù)器和至少一個(gè)前端服務(wù)器,所述前端服務(wù)器包括前端服務(wù)器緩存引擎和前端服務(wù)器會(huì)話控制模型;
所述連接服務(wù)器,用于接收客戶端發(fā)送的客戶端事件,若所述客戶端事件為視圖注冊(cè)類事件,則判斷所述連接服務(wù)器是否有所述客戶端事件對(duì)應(yīng)的視圖注冊(cè)類事件處理器,若無(wú),則發(fā)送所述客戶端事件至所述消息服務(wù)器;
所述前端服務(wù)器緩存引擎,用于監(jiān)聽(tīng)所述消息服務(wù)器,獲取所述客戶端事件,處理所述客戶端事件得到客戶端事件處理結(jié)果列表,發(fā)送所述客戶端事件和所述客戶端事件處理結(jié)果列表至所述前端服務(wù)器會(huì)話控制模型;
所述前端服務(wù)器會(huì)話控制模型,用于分別處理所述客戶端事件和所述客戶端事件處理結(jié)果列表,得到客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件處理結(jié)果至所述消息服務(wù)器;
所述連接服務(wù)器,還用于監(jiān)聽(tīng)所述消息服務(wù)器,并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至所述客戶端。
本發(fā)明的有益效果是:連接服務(wù)器將接收到的視圖注冊(cè)類客戶端事件發(fā)送至消息服務(wù)器,前端服務(wù)器在監(jiān)聽(tīng)到視圖注冊(cè)類客戶端事件后對(duì)其進(jìn)行處理,并且分不同情況對(duì)不同類型的客戶端事件分別處理,既分擔(dān)了連接服務(wù)器的工作負(fù)擔(dān),又保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
另一方面,本發(fā)明還提供了一種服務(wù)器集群處理方法,包括:
步驟1:連接服務(wù)器接收客戶端發(fā)送的客戶端事件,若所述客戶端事件為視圖注冊(cè)類事件,則判斷所述連接服務(wù)器是否有所述客戶端事件對(duì)應(yīng)的視圖注冊(cè)類事件處理器,若無(wú),則發(fā)送所述客戶端事件至所述消息服務(wù)器;
步驟2:前端服務(wù)器緩存引擎監(jiān)聽(tīng)所述消息服務(wù)器,獲取所述客戶端事件,處理所述客戶端事件得到客戶端事件處理結(jié)果列表,發(fā)送所述客戶端事件和所述客戶端事件處理結(jié)果列表至所述前端服務(wù)器會(huì)話控制模型;
步驟3:所述前端服務(wù)器會(huì)話控制模型分別處理所述客戶端事件和所述客戶端事件處理結(jié)果列表,得到客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件處理結(jié)果至所述消息服務(wù)器;
步驟4:所述連接服務(wù)器監(jiān)聽(tīng)所述消息服務(wù)器,并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至所述客戶端。
本發(fā)明的有益效果是:連接服務(wù)器將接收到的視圖注冊(cè)類客戶端事件發(fā)送至消息服務(wù)器,前端服務(wù)器在監(jiān)聽(tīng)到視圖注冊(cè)類客戶端事件后對(duì)其進(jìn)行處理,并且分不同情況對(duì)不同類型的客戶端事件分別處理,既分擔(dān)了連接服務(wù)器的工作負(fù)擔(dān),又保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的一種服務(wù)器集群處理系統(tǒng)的框圖;
圖2為本發(fā)明實(shí)施例一提供的一種服務(wù)器集群處理系統(tǒng)的前端服務(wù)器的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例二提供的一種服務(wù)器集群處理系統(tǒng)的前端服務(wù)器的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例三提供的一種服務(wù)器集群處理方法的流程示意圖;
圖5為本發(fā)明實(shí)施例四提供的一種服務(wù)器集群處理方法的流程示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
圖1為本發(fā)明實(shí)施例提供的一種服務(wù)器集群處理系統(tǒng)的框圖。如圖1所示,該系統(tǒng)包括連接服務(wù)器110、消息服務(wù)器120和至少一個(gè)前端服務(wù)器130。
圖2為本發(fā)明實(shí)施例一提供的一種服務(wù)器集群處理系統(tǒng)的前端服務(wù)器的結(jié)構(gòu)示意圖。如圖2所示,前端服務(wù)器130包括前端服務(wù)器緩存引擎131和前端服務(wù)器會(huì)話控制模型132。
連接服務(wù)器110用于接收客戶端140發(fā)送的客戶端事件,若所述客戶端事件為視圖注冊(cè)類事件,則判斷連接服務(wù)器110是否有所述客戶端事件對(duì)應(yīng)的視圖注冊(cè)類事件處理器,若無(wú),則發(fā)送所述客戶端事件至消息服務(wù)器120。
前端服務(wù)器緩存引擎131用于監(jiān)聽(tīng)消息服務(wù)器120,并獲取所述客戶端事件,如果所述客戶端事件為直接類事件,發(fā)送所述客戶端事件至前端服務(wù)器會(huì)話控制模型132,如果所述客戶端事件為緩存類事件,首先處理所述客戶端事件得到客戶端事件處理結(jié)果列表,再發(fā)送所述客戶端事件處理結(jié)果列表至前端服務(wù)器會(huì)話控制模型132。
前端服務(wù)器會(huì)話控制模型132用于分別處理所述客戶端事件和所述客戶端事件處理結(jié)果列表,得到客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件處理結(jié)果至消息服務(wù)器120。
連接服務(wù)器110還用于監(jiān)聽(tīng)消息服務(wù)器120,并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至客戶端140。
需要說(shuō)明的是,前端服務(wù)器會(huì)話控制模型132中有多個(gè)獨(dú)立的處理線程,部分獨(dú)立處理線程用于對(duì)接收到的事件進(jìn)行處理,部分獨(dú)立處理線程用于向消息服務(wù)器120發(fā)送處理結(jié)果。
在本實(shí)施例中,連接服務(wù)器將接收到的視圖注冊(cè)類客戶端事件發(fā)送至消息服務(wù)器,前端服務(wù)器在監(jiān)聽(tīng)到視圖注冊(cè)類客戶端事件后對(duì)其進(jìn)行處理,并且分不同情況對(duì)不同類型的客戶端事件,如對(duì)直接類事件和緩存類事件分別處理,既分擔(dān)了連接服務(wù)器的工作負(fù)擔(dān),又保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
圖3為本發(fā)明實(shí)施例二提供的一種服務(wù)器集群處理系統(tǒng)的前端服務(wù)器的結(jié)構(gòu)示意圖。在實(shí)施例一的基礎(chǔ)上,本實(shí)施例中,前端服務(wù)器緩存引擎131包括緩存引擎單元135和前端服務(wù)器緩存類事件處理器133。
緩存引擎單元135用于監(jiān)聽(tīng)消息服務(wù)器120,獲取所述客戶端事件;根據(jù)指示緩存類事件的所述客戶端事件,取得其對(duì)應(yīng)的前端服務(wù)器緩存類事件處理器,形成前端服務(wù)器緩存類事件處理器列表。
所述前端服務(wù)器緩存類事件處理器列表中的前端服務(wù)器緩存類事件處理器133用于分別處理所述客戶端事件,得到所述客戶端事件處理結(jié)果列表。
緩存引擎單元135還用于發(fā)送所述客戶端事件處理結(jié)果列表至前端服務(wù)器會(huì)話控制模型132。
具體地,前端服務(wù)器緩存引擎131從消息服務(wù)器120監(jiān)聽(tīng)到的視圖注冊(cè)類客戶端事件包括直接類事件和緩存類事件。對(duì)于直接類事件,如客戶端發(fā)送的進(jìn)入頁(yè)面按鈕、滑屏事件等,將其發(fā)送給前端服務(wù)器會(huì)話控制模型132進(jìn)行處理。對(duì)于緩存類事件,如視圖更改請(qǐng)求事件,首先循環(huán)取得其對(duì)應(yīng)的前端服務(wù)器緩存類事件處理器列表,列表中的前端服務(wù)器緩存類事件處理器133分別處理緩存類事件,并獲得客戶端事件處理結(jié)果列表,再發(fā)送至前端服務(wù)器會(huì)話控制模型132。
其中,前端服務(wù)器緩存引擎131中預(yù)設(shè)有客戶端事件主題及其與前端服務(wù)器緩存類事件處理器133的對(duì)應(yīng)關(guān)系,前端服務(wù)器緩存引擎131在獲取到客戶端事件后,會(huì)根據(jù)客戶端事件的主題,一一找到該主題對(duì)應(yīng)的前端服務(wù)器緩存類事件處理器133,并得到前端服務(wù)器緩存類事件處理器列表。該前端服務(wù)器緩存類事件處理器列表中的前端服務(wù)器緩存類事件處理器133分別處理該客戶端事件。因此,該客戶端事件經(jīng)前端服務(wù)器緩存類事件處理器133處理后會(huì)得到一個(gè)客戶端事件處理結(jié)果列表。
優(yōu)選地,前端服務(wù)器會(huì)話控制模型132包括會(huì)話控制單元136和前端服務(wù)器視圖數(shù)據(jù)模型134。
會(huì)話控制單元136用于分配所述客戶端事件和所述客戶端事件處理結(jié)果列表至前端服務(wù)器視圖數(shù)據(jù)模型134。
前端服務(wù)器視圖數(shù)據(jù)模型134用于處理所述客戶端事件,得到第一處理結(jié)果;處理所述客戶端事件處理結(jié)果列表,得到第二處理結(jié)果。
會(huì)話控制單元136還用于分別將所述第一處理結(jié)果和所述第二處理結(jié)果發(fā)送至所述消息服務(wù)器,其中,所述第一處理結(jié)果為視圖初始內(nèi)容,所述第二處理結(jié)果為所述視圖初始內(nèi)容的變更部分。
具體地,指示直接類事件的客戶端事件和指示緩存類事件的客戶端事件處理結(jié)果列表分別被發(fā)送至對(duì)應(yīng)的視圖數(shù)據(jù)模型。會(huì)話控制模型和客戶端一一對(duì)應(yīng),因此,前端服務(wù)器130內(nèi)的前端服務(wù)器會(huì)話控制模型132的個(gè)數(shù)取決于客戶端連接的個(gè)數(shù)。
由于前端服務(wù)器130主要負(fù)責(zé)處理視圖類客戶端事件,前端服務(wù)器會(huì)話控制模型132包括前端服務(wù)器視圖數(shù)據(jù)模型134,對(duì)于直接類事件,前端服務(wù)器會(huì)話控制模型132處理得到第一處理結(jié)果,所述第一處理結(jié)果為視圖初始內(nèi)容。對(duì)于緩存類事件,前端服務(wù)器會(huì)話控制模型132處理得到第二處理結(jié)果,所述第二處理結(jié)果為所述視圖初始內(nèi)容的變更部分。例如,a客戶端事件由前端服務(wù)器緩存引擎131從消息服務(wù)器120中監(jiān)聽(tīng)并獲取到,并由前端服務(wù)器緩存引擎131將其發(fā)送至前端服務(wù)器會(huì)話控制模型132,前端服務(wù)器會(huì)話控制模型132中的前端服務(wù)器視圖數(shù)據(jù)模型134對(duì)該客戶端事件進(jìn)行處理,得到a結(jié)果,即為視圖初始內(nèi)容,即第一處理結(jié)果。當(dāng)a客戶端事件由前端服務(wù)器緩存引擎131從消息服務(wù)器120中再次監(jiān)聽(tīng)并獲取到,且前端服務(wù)器會(huì)話控制模型132再次接收到該客戶端事件時(shí),由前端服務(wù)器視圖數(shù)據(jù)模型134進(jìn)行處理,處理得到b結(jié)果,a結(jié)果和b結(jié)果之間的差異,即為視圖初始內(nèi)容的變更內(nèi)容,即第二處理結(jié)果,前端服務(wù)器會(huì)話控制模型132會(huì)將該變更內(nèi)容封裝為model消息,通過(guò)更新線程推送至消息服務(wù)器120。
優(yōu)選地,前端服務(wù)器130還包括前端服務(wù)器注冊(cè)模塊和前端服務(wù)器會(huì)話控制模型創(chuàng)建模塊。
前端服務(wù)器注冊(cè)模塊用于在前端服務(wù)器130監(jiān)聽(tīng)到消息服務(wù)器120中的所述客戶端的視圖注冊(cè)類事件后,調(diào)用登陸處理方法處理所述視圖注冊(cè)類事件,得到并向消息服務(wù)器120返回登陸處理結(jié)果。
前端服務(wù)器會(huì)話控制模型創(chuàng)建模塊用于在客戶端140登陸成功后,創(chuàng)建客戶端140對(duì)應(yīng)的前端服務(wù)器會(huì)話控制模型132。
在本實(shí)施例中,連接服務(wù)器將接收到的視圖注冊(cè)類客戶端事件發(fā)送至消息服務(wù)器,前端服務(wù)器在監(jiān)聽(tīng)到視圖注冊(cè)類客戶端事件后對(duì)其進(jìn)行處理,并且分不同情況對(duì)不同類型的客戶端事件分別處理,如分別處理直接類事件和緩存類事件,既分擔(dān)了連接服務(wù)器的工作負(fù)擔(dān),又保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
在上述實(shí)施例的基礎(chǔ)上,作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,在該優(yōu)選實(shí)施例中,連接服務(wù)器120包括連接服務(wù)器緩存引擎、連接服務(wù)器會(huì)話控制模型和前端服務(wù)器心跳監(jiān)視器。
連接服務(wù)器緩存引擎用于監(jiān)聽(tīng)并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至連接服務(wù)器會(huì)話控制模型。
連接服務(wù)器會(huì)話控制模型用于發(fā)送所述客戶端事件處理結(jié)果至與連接服務(wù)器會(huì)話控制模型對(duì)應(yīng)的客戶端140。
前端服務(wù)器心跳監(jiān)視器用于監(jiān)視連接服務(wù)器120和前端服務(wù)器130的通信時(shí)間,如果當(dāng)前通信時(shí)間與最近一次通信時(shí)間的間隔大于預(yù)設(shè)時(shí)間間隔,則生成前端服務(wù)器連接失敗服務(wù)器事件,并發(fā)送所述前端服務(wù)器連接失敗服務(wù)器事件至連接服務(wù)器會(huì)話控制模型。
連接服務(wù)器會(huì)話控制模型還用于根據(jù)所述前端服務(wù)器連接失敗服務(wù)器事件生成前端服務(wù)器連接失敗通知事件,并發(fā)送所述前端服務(wù)器連接失敗通知事件至與所述連接服務(wù)器會(huì)話控制模型對(duì)應(yīng)的客戶端140。
具體地,前端服務(wù)器心跳監(jiān)視器每隔一段時(shí)間,通過(guò)檢查連接服務(wù)器120和前端服務(wù)器130兩次相鄰的通信時(shí)間是否超過(guò)預(yù)設(shè)時(shí)間間隔,判斷用于分擔(dān)連接服務(wù)器120視圖類事件處理負(fù)擔(dān)的前端服務(wù)器130是否和連接服務(wù)器120連接失敗,如果連接失敗,生成連接失敗信息并發(fā)送至客戶端140,并且將客戶端事件處理結(jié)果中的前端服務(wù)器標(biāo)識(shí)刪除。
在本實(shí)施例中,通過(guò)設(shè)置前端服務(wù)器心跳監(jiān)視器可以監(jiān)控前端服務(wù)器是否和連接服務(wù)器斷開(kāi)連接,從而避免了前端服務(wù)器宕機(jī)或其他原因引起的客戶端事件不能及時(shí)處理的情況發(fā)生。
在上述實(shí)施例的基礎(chǔ)上,作為本發(fā)明的另一個(gè)優(yōu)選實(shí)施例,在該優(yōu)選實(shí)施例中,連接服務(wù)器110還用于接收客戶端140發(fā)送的所述客戶端事件和與所述客戶端事件對(duì)應(yīng)的所述客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件和所述客戶端事件處理結(jié)果至消息服務(wù)器120。
前端服務(wù)器130還用于監(jiān)聽(tīng)消息服務(wù)器120,并獲取所述客戶端事件和所述客戶端事件處理結(jié)果,處理得到更新的客戶端事件處理結(jié)果,并發(fā)送所述更新的客戶端事件處理結(jié)果至消息服務(wù)器120。
連接服務(wù)器110還用于監(jiān)聽(tīng)消息服務(wù)器120,并獲取所述更新的客戶端事件處理結(jié)果,發(fā)送所述更新的客戶端事件處理結(jié)果至客戶端140。
具體地,如果一個(gè)連接服務(wù)器宕機(jī)或不能再處理客戶端事件,所有由其進(jìn)行客戶端事件處理的客戶端會(huì)收到已處理的客戶端事件處理結(jié)果以及連接服務(wù)器連接失敗信息。此時(shí),客戶端可以再次發(fā)生客戶端事件,同時(shí)發(fā)送和客戶端事件對(duì)于的客戶端事件處理結(jié)果。在監(jiān)聽(tīng)到客戶端時(shí)間后,其他備用前端服務(wù)器會(huì)啟動(dòng),并處理上述客戶端事件及其對(duì)應(yīng)的客戶端事件處理結(jié)果,生成更新的客戶端事件處理結(jié)果,并在更新的客戶端事件處理結(jié)果加入新的前端服務(wù)器的標(biāo)識(shí)。
在本實(shí)施例中,在一個(gè)前端服務(wù)器不能繼續(xù)處理客戶端事件時(shí),客戶端可以再次發(fā)送客戶端事件及其對(duì)應(yīng)的客戶端事件處理結(jié)果,由備用前端服務(wù)器對(duì)其進(jìn)行處理,獲得更新的客戶端事件處理結(jié)果,并最終發(fā)送至客戶端。從而實(shí)現(xiàn)在部分前端服務(wù)器宕機(jī)時(shí),依然有其他前端服務(wù)器及時(shí)處理客戶端事件,達(dá)到服務(wù)續(xù)接功能,保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
圖4為本發(fā)明實(shí)施例三提供的一種服務(wù)器集群處理方法的流程示意圖。如圖4所示,該方法包括:
步驟1:連接服務(wù)器接收客戶端發(fā)送的客戶端事件,若所述客戶端事件為視圖注冊(cè)類事件,則判斷所述連接服務(wù)器是否有所述客戶端事件對(duì)應(yīng)的視圖注冊(cè)類事件處理器,若無(wú),則發(fā)送所述客戶端事件至所述消息服務(wù)器。
步驟2:前端服務(wù)器緩存引擎監(jiān)聽(tīng)所述消息服務(wù)器,獲取所述客戶端事件,處理所述客戶端事件得到客戶端事件處理結(jié)果列表,發(fā)送所述客戶端事件和所述客戶端事件處理結(jié)果列表至所述前端服務(wù)器會(huì)話控制模型。
步驟3:所述前端服務(wù)器會(huì)話控制模型分別處理所述客戶端事件和所述客戶端事件處理結(jié)果列表,得到客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件處理結(jié)果至所述消息服務(wù)器。
步驟4:所述連接服務(wù)器監(jiān)聽(tīng)所述消息服務(wù)器,并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至所述客戶端。
優(yōu)選地,所述前端服務(wù)器緩存引擎包括緩存引擎單元和前端服務(wù)器緩存類事件處理器,所述步驟2包括:
步驟2.1:所述緩存引擎單元監(jiān)聽(tīng)所述消息服務(wù)器,獲取所述客戶端事件。
步驟2.2:所述緩存引擎單元取得所述客戶端事件對(duì)應(yīng)的前端服務(wù)器緩存類事件處理器。
步驟2.3:所述前端服務(wù)器緩存類事件處理器分別處理所述客戶端事件,得到所述客戶端事件處理結(jié)果列表。
步驟2.4:所述緩存引擎單元發(fā)送所述客戶端事件處理結(jié)果列表至所述前端服務(wù)器會(huì)話控制模型。
優(yōu)選地,所述前端服務(wù)器會(huì)話控制模型包括會(huì)話控制單元和前端服務(wù)器視圖數(shù)據(jù)模型,所述步驟3包括:
步驟3.1:所述會(huì)話控制單元分配所述客戶端事件和所述客戶端事件處理結(jié)果列表至所述前端服務(wù)器視圖數(shù)據(jù)模型。
步驟3.2:所述前端服務(wù)器視圖數(shù)據(jù)模型處理所述客戶端事件,得到第一處理結(jié)果。
步驟3.3:所述前端服務(wù)器視圖數(shù)據(jù)模型處理所述客戶端事件處理結(jié)果列表,得到第二處理結(jié)果。
步驟3.4:所述會(huì)話控制單元分別將所述第一處理結(jié)果和所述第二處理結(jié)果發(fā)送至所述消息服務(wù)器,其中,所述第一處理結(jié)果為視圖初始內(nèi)容,所述第二處理結(jié)果為所述視圖初始內(nèi)容的變更部分。
優(yōu)選地,所述連接服務(wù)器包括連接服務(wù)器緩存引擎、連接服務(wù)器會(huì)話控制模型和前端服務(wù)器心跳監(jiān)視器,所述步驟4包括:
步驟4.1:所述連接服務(wù)器緩存引擎監(jiān)聽(tīng)并獲取所述客戶端事件處理結(jié)果,發(fā)送所述客戶端事件處理結(jié)果至所述連接服務(wù)器會(huì)話控制模型。
步驟4.2:所述連接服務(wù)器會(huì)話控制模型發(fā)送所述客戶端事件處理結(jié)果至與所述連接服務(wù)器會(huì)話控制模型對(duì)應(yīng)的所述客戶端。
步驟4.3:所述前端服務(wù)器心跳監(jiān)視器監(jiān)視所述連接服務(wù)器和所述前端服務(wù)器的通信時(shí)間,如果當(dāng)前通信時(shí)間與最近一次通信時(shí)間的間隔大于預(yù)設(shè)時(shí)間間隔,則生成前端服務(wù)器連接失敗服務(wù)器事件,并發(fā)送所述前端服務(wù)器連接失敗服務(wù)器事件至所述連接服務(wù)器會(huì)話控制模型。
步驟4.4:所述連接服務(wù)器會(huì)話控制模型根據(jù)所述前端服務(wù)器連接失敗服務(wù)器事件生成前端服務(wù)器連接失敗通知事件,并發(fā)送所述前端服務(wù)器連接失敗通知事件至與所述連接服務(wù)器會(huì)話控制模型對(duì)應(yīng)的所述客戶端。
在本實(shí)施例中,連接服務(wù)器將接收到的視圖注冊(cè)類客戶端事件發(fā)送至消息服務(wù)器,前端服務(wù)器在監(jiān)聽(tīng)到視圖注冊(cè)類客戶端事件后對(duì)其進(jìn)行處理,并且分不同情況對(duì)不同類型的客戶端事件分別處理,如分別處理直接類事件和緩存類事件,既分擔(dān)了連接服務(wù)器的工作負(fù)擔(dān),又保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。另外,通過(guò)設(shè)置前端服務(wù)器心跳監(jiān)視器可以監(jiān)控前端服務(wù)器是否和連接服務(wù)器斷開(kāi)連接,從而避免了前端服務(wù)器宕機(jī)或其他原因引起的客戶端事件不能及時(shí)處理的情況發(fā)生。
圖5為本發(fā)明實(shí)施例四提供的一種服務(wù)器集群處理方法的流程示意圖。如圖5所示,在上述實(shí)施例的基礎(chǔ)上,該方法還包括:
步驟5:所述連接服務(wù)器接收所述客戶端發(fā)送的所述客戶端事件和與所述客戶端事件對(duì)應(yīng)的所述客戶端事件處理結(jié)果,并發(fā)送所述客戶端事件和所述客戶端事件處理結(jié)果至所述消息服務(wù)器。
步驟6:所述前端服務(wù)器監(jiān)聽(tīng)所述消息服務(wù)器,并獲取所述客戶端事件和所述客戶端事件處理結(jié)果,處理得到更新的客戶端事件處理結(jié)果,并發(fā)送所述更新的客戶端事件處理結(jié)果至所述消息服務(wù)器。
步驟7:所述連接服務(wù)器監(jiān)聽(tīng)所述消息服務(wù)器,并獲取所述更新的客戶端事件處理結(jié)果,發(fā)送所述更新的客戶端事件處理結(jié)果至所述客戶端。
在本實(shí)施例中,在一個(gè)前端服務(wù)器不能繼續(xù)處理客戶端事件時(shí),客戶端可以再次發(fā)送客戶端事件及其對(duì)應(yīng)的客戶端事件處理結(jié)果,由備用前端服務(wù)器對(duì)其進(jìn)行處理,獲得更新的客戶端事件處理結(jié)果,并最終發(fā)送至客戶端。從而實(shí)現(xiàn)在部分前端服務(wù)器宕機(jī)時(shí),依然有其他前端服務(wù)器及時(shí)處理客戶端事件,達(dá)到服務(wù)續(xù)接功能,保證了服務(wù)器系統(tǒng)對(duì)客戶端事件的處理質(zhì)量。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。