本發(fā)明涉及通信領域中的信息處理技術(shù),尤其涉及一種負載均衡方法、裝置、設備和計算機可讀存儲介質(zhì)。
背景技術(shù):
隨著電子產(chǎn)品的推廣與發(fā)展,電子產(chǎn)品功能越來越多、性能越來越強、體驗越來越豐富,給人們的生活帶來很多便利。同時,智能終端也越來越普及;而且,在智能終端聯(lián)網(wǎng)之后,可以使用其實現(xiàn)較多功能。當然,目前對于用戶來說,使用終端進行娛樂的一種方式是使用終端上的游戲應用程序進行游戲。
在現(xiàn)有技術(shù)方案中,用戶使用游戲應用程序進行具有互動的游戲時,游戲服務器是在選擇給進行游戲的終端提供服務的同步服務器時是隨機分配的;這樣會存在一些同步服務器的負載已經(jīng)很大了,但是游戲服務器仍然會分配其給終端提供服務的問題,導致終端的操作會產(chǎn)生延時,交互雙方的操作不能實時進行。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實施例期望提供一種負載均衡方法、裝置、設備和計算機可讀存儲介質(zhì),解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
第一方面,提供一種負載均衡方法,所述方法包括:
接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載;其中,所述負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的;
比較第一同步服務器的負載與第一預設比例閾值的關(guān)系;
基于比較結(jié)果對所述第一同步服務器進行分組,得到分組結(jié)果;
基于所述分組結(jié)果,從所述同步服務器集群中確定至少一個第一同步服務器作為目標服務器;
發(fā)送服務指令至所述目標服務器;其中,所述服務指令用于指示所述目標服務器為第一終端提供服務。
第二方面,提供一種負載均衡方法,所述方法包括:
接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求;
響應所述啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息;其中,所述當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前中央處理器cpu使用率;
計算所述當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例;其中,所述客戶端總數(shù)量為所述第一同步服務器能夠提供服務的客戶端的總數(shù)量;
計算所述當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例;其中,所述總收發(fā)包流量為所述第一同步服務器能夠提供的總收發(fā)包流量;
發(fā)送所述第一比例、第二比例和當前cpu使用率至客戶端服務器;其中,所述第一比例、第二比例和當前cpu使用率是所述客戶端服務器用于確定目標服務器的;所述目標服務器是所述同步服務器集群中的至少一個第一同步服務器。
第三方面,提供一種負載均衡裝置,所述裝置包括:第一接收單元、比較單元、第一處理單元和第一發(fā)送單元,其中:
所述第一接收單元,用于接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載;其中,所述負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的;
所述比較單元,用于比較第一同步服務器的負載與第一預設比例閾值的關(guān)系;
所述第一處理單元,用于基于比較結(jié)果對所述第一同步服務器進行分組,得到分組結(jié)果;
所述第一處理單元,還用于基于所述分組結(jié)果,從所述同步服務器集群中確定至少一個第一同步服務器作為目標服務器;
所述第一發(fā)送單元,用于發(fā)送服務指令至所述目標服務器;其中,所述服務指令用于指示所述目標服務器為第一終端提供服務。
第四方面,提供一種負載均衡裝置,所述裝置包括:第二接收單元、第二獲取單元、計算單元和第二發(fā)送單元,其中:
所述第二接收單元,用于接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求;
所述第二獲取單元,用于響應所述啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息;其中,所述當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率;
所述計算單元,用于計算所述當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例;其中,所述客戶端總數(shù)量為所述第一同步服務器能夠提供服務的客戶端的總數(shù)量;
所述計算單元,還用于計算所述當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例;其中,所述總收發(fā)包流量為所述第一同步服務器能夠提供的總收發(fā)包流量;
所述第二發(fā)送單元,用于發(fā)送所述第一比例、第二比例和當前cpu使用率至客戶端服務器;其中,所述第一比例、第二比例和當前cpu使用率是所述客戶端服務器用于確定目標服務器的;所述目標服務器是所述同步服務器集群中的至少一個第一同步服務器。
第五方面,提供一種客戶端服務器,所述服務器包括:第一通信接口和第一處理器,其中:
所述第一處理器,用于通過所述第一通信接口接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載;其中,所述負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的;比較第一同步服務器的負載與第一預設比例閾值的關(guān)系;基于比較結(jié)果對所述第一同步服務器進行分組,得到分組結(jié)果;基于所述分組結(jié)果,從所述同步服務器集群中確定至少一個第一同步服務器作為目標服務器;通過所述第一通信接口發(fā)送服務指令至所述目標服務器;其中,所述服務指令用于指示所述目標服務器為第一終端提供服務。
第六方面,提供一種同步服務器,所述服務器包括:第二通信接口和第二處理器,其中:
所述第二處理器,用于通過所述第二通信接口接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求;響應所述啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息;其中,所述當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率;計算所述當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例;其中,所述客戶端總數(shù)量為所述第一同步服務器能夠提供服務的客戶端的總數(shù)量;計算所述當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例;其中,所述總收發(fā)包流量為所述第一同步服務器能夠提供的總收發(fā)包流量;并通過所述第二通信接口發(fā)送所述第一比例、第二比例和當前cpu使用率至客戶端服務器;其中,所述第一比例、第二比例和當前cpu使用率是所述客戶端服務器用于確定目標服務器的;所述目標服務器是所述同步服務器集群中的至少一個第一同步服務器。
第七方面,提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有一個或多個計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)第一方面或第二方面所述方法的步驟。
本發(fā)明的實施例所提供的負載均衡方法、裝置、設備和計算機可讀存儲介質(zhì),接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器,其中服務指令用于指示目標服務器為第一終端提供服務;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
附圖說明
圖1為本發(fā)明的實施例提供的一種負載均衡方法的流程示意圖;
圖2為本發(fā)明的實施例提供的另一種負載均衡方法的流程示意圖;
圖3為本發(fā)明的實施例提供的又一種負載均衡方法的流程示意圖;
圖4為本發(fā)明的另一實施例提供的一種負載均衡方法的流程示意圖;
圖5為本發(fā)明的另一實施例提供的另一種負載均衡方法的流程示意圖;
圖6為本發(fā)明的實施例提供的一種同步服務器和游戲服務器的交互過程示意圖;
圖7為本發(fā)明的實施例提供的一種負載均衡方法在實際應用場景中的效果示意圖;
圖8為本發(fā)明的實施例提供的一種負載均衡裝置的結(jié)構(gòu)示意圖;
圖9為本發(fā)明的實施例提供的另一種負載均衡裝置的結(jié)構(gòu)示意圖;
圖10為本發(fā)明的實施例提供的一種客戶端服務器的結(jié)構(gòu)示意圖;
圖11為本發(fā)明的實施例提供的一種同步服務器的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
本發(fā)明的實施例提供一種負載均衡方法,參照圖1所示,該方法包括以下步驟:
步驟101、接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載。
其中,負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的。
在本發(fā)明的其它實施例中,步驟101接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載可以是由客戶端服務器來實現(xiàn)的;客戶端服務器可以是在用戶使用終端進行互動游戲時,在后臺給終端提供各種服務的服務器;該客戶端服務器可以是一種提供游戲功能的游戲服務器??蛻舳朔赵诮邮盏降谝煌椒掌髯陨淼呢撦d后,可以了解第一同步服務器當前的運行情況。
步驟102、比較第一同步服務器的負載與第一預設比例閾值的關(guān)系。
其中,步驟102比較第一同步服務器的負載與第一預設比例閾值的關(guān)系可以是由客戶端服務器來實現(xiàn)的;客戶端服務器在接收到第一同步服務器發(fā)送的自身的負載后,可以通過比較第一同步服務器的負載與第一預設比例閾值之間的關(guān)系來判斷第一同步服務器當前的負載情況。第一預設比例閾值是根據(jù)第一同步服務器在實際應用場景中的運行結(jié)果,在保證能夠均衡負載的基礎上設置的。
步驟103、基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果。
其中,步驟103基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果可以是由客戶端服務器來實現(xiàn)的;客戶端服務器對第一同步服務器進行分組的時候可以是根據(jù)第一同步服務器當前的負載來實施的。
步驟104、基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器作為目標服務器。
其中,步驟104基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器作為目標服務器可以是由客戶端服務器來實現(xiàn)的;目標服務器可以是為第一終端提供服務的服務器,第一同步服務器的分組結(jié)果是根據(jù)每一個第一同步服務器當前的負載得到的;因此,可以根據(jù)最終得到的分組結(jié)果來確定目標服務器。
步驟105、發(fā)送服務指令至目標服務器。
其中,服務指令用于指示目標服務器為第一終端提供服務。
在本發(fā)明的其它實施例中,步驟105發(fā)送服務指令至目標服務器可以是由客戶端服務器來實現(xiàn)的;目標服務器接收到客戶端服務器發(fā)送的服務指令后,可以在后臺給第一終端提供服務;在一種可行的實現(xiàn)方案中,目標服務器可以給開啟互動游戲應用程序的第一終端提供服務。
本發(fā)明的實施例所提供的負載均衡方法,接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡方法,該方法包括以下步驟:
步驟201、接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求。
其中,步驟201接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求可以是由同步服務器來實現(xiàn)的。具有對戰(zhàn)功能的應用可以是需要至少兩個終端聯(lián)機來實施的應用程序,例如可以是需要至少兩個終端聯(lián)機進行的游戲應用程序。啟動請求可以是用戶點擊打開第一終端上的游戲應用程序后,第一終端需要同步服務器提供服務時發(fā)送給同步服務器的。
步驟202、響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息。
其中,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前中央處理器(centralprocessingunit,cpu)使用率。
在本發(fā)明的其它實施例中,步驟202響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息可以是由同步服務器來實現(xiàn)的;同步服務器是以群組的方式來部署和給終端提供服務的,即同步服務器是以集群的方式存在的。當前運行信息可以表示第一同步服務器當前的負載。
步驟203、計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例。
其中,客戶端總數(shù)量為第一同步服務器能夠提供服務的客戶端的總數(shù)量。
在本發(fā)明的其它實施例中,步驟203計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例可以是由同步服務器來實現(xiàn)的。
步驟204、計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例。
其中,總收發(fā)包流量為第一同步服務器能夠提供的總收發(fā)包流量。
在本發(fā)明的其它實施例中,步驟204計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例可以是由同步服務器來實現(xiàn)的。
步驟205、發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器。
其中,第一比例、第二比例和當前cpu使用率是客戶端服務器用于確定目標服務器的;目標服務器是同步服務器集群中的至少一個第一同步服務器。
在本發(fā)明的其它實施例中,步驟205發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器可以是由同步服務器來實現(xiàn)的。
本發(fā)明的實施例所提供的負載均衡方法,接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率,然后計算當前客戶端數(shù)量與客戶端總數(shù)量的第一比例,同時計算當前收發(fā)包流量與總收發(fā)包流量的第二比例,并發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器;目標服務器是同步服務器集群中的至少一個服務器;這樣,客戶端服務器可以根據(jù)接收到自身的第一比例、第二比例和當前cpu使用率確定目標服務器,因此客戶端服務器在給終端分配同步服務器的時候,可以根據(jù)每一個同步服務器當前的負載來進行,充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡方法,參照圖2所示,該方法包括以下步驟:
步驟301、同步服務器接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求。
步驟302、同步服務器響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息。
其中,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率。
步驟303、同步服務器計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例。
其中,客戶端總數(shù)量為第一同步服務器能夠提供服務的客戶端的總數(shù)量。
在本發(fā)明的一種實現(xiàn)方式中,第一同步服務器當前客戶端數(shù)量可以是第一同步服務器當前正在使用的房間數(shù)量,第一同步服務器的客戶端總數(shù)量可以是第一同步服務器中包括的所有的房間數(shù)量;計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系可以是通過計算當前正在使用的房間數(shù)量在所有房間數(shù)量中所占的比例來實現(xiàn)的。
步驟304、同步服務器計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例。
其中,總收發(fā)包流量為第一同步服務器能夠提供的總收發(fā)包流量。
步驟305、同步服務器發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器。
其中,獲取第一同步服務器當前運行信息、計算第一比例和第二比例可以是一旦第一同步服務器進入工作狀態(tài)時就實施的;當然,可以是在預設時間周期到來時獲取第一同步服務器當前運行信息、計算第一比例和第二比例的。一種可行的實時方式是,只要第一同步服務器獲取到自身的當前cpu使用率、第一比例和第二比例后,就可以即時將得到的這些信息發(fā)送給客戶端服務器。
步驟306、客戶端服務器接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的第一比例、第二比例和當前cpu的使用率。
步驟307、客戶端服務器比較第一同步服務器的第一比例、第二比例和當前中央處理器cpu的使用率與第一預設比例閾值的關(guān)系。
其中,在一種可行的實現(xiàn)方式中,第一預設比例閾值可以是能夠保證第一同步服務器正常流暢運行的第一同步服務器的負載值,例如第一預設比例閾值可以是80%。
步驟308、若第一比例、第二比例和當前cpu的使用率中至少一個大于第一預設比例閾值,客戶端服務器將第一同步服務器劃分為第一組。
其中,如果第一同步服務器的第一比例、第二比例和當前cpu的使用率中有一個數(shù)值大于第一預設比例閾值,說明當前該第一同步服務器的負載過大,已不能保證其上業(yè)務的正常運行了;此時,可以確定該第一同步服務器為負載較高的同步服務器。
步驟309、若第一比例、第二比例和當前cpu的使用率均小于或者等于第一預設比例閾值,客戶端服務器將第一同步服務器劃分為第二組。
其中,第一組中的同步服務器的負載高于第二組。
如果第一同步服務器的第一比例、第二比例和當前cpu的使用率的值均小于或等于第一預設比例閾值,說明當前該第一同步服務器的負載不是很大,仍然可以保證其上業(yè)務的正常運行;此時,可以確定該第一同步服務器為負載較低的同步服務器。
需要說明的是,步驟309之后可以選擇執(zhí)行步驟310或者步驟311-312;如果直接從第一組對應的第一同步服務器中選擇目標服務器,那么如圖2所示可以執(zhí)行步驟310;如果需要根據(jù)第一同步服務器的時間權(quán)重從第一組對應的第一同步服務器中選擇目標服務器,那么如圖3所示可以執(zhí)行步驟311-312。
步驟310、客戶端服務器從第一組對應的第一同步服務器中,選擇任一第一同步服務器作為目標服務器。
步驟311、客戶端服務器獲取第一同步服務器的時間權(quán)重。
其中,第一同步服務器的時間權(quán)重可以是根據(jù)第一同步服務器提供服務的時間來確定的。
步驟312、客戶端服務器基于時間權(quán)重,從第一組對應的第一同步服務器中確定目標服務器。
其中,步驟310和步驟312之后都需要執(zhí)行步驟313。
步驟313、客戶端服務器發(fā)送服務指令至目標服務器。
其中,服務指令用于指示目標服務器為第一終端提供服務。
需要說明的是,本實施例中與其他實施例中相同步驟或相關(guān)概念的解釋可以參照其他實施例中的描述,此處不再贅述。
本發(fā)明的實施例所提供的負載均衡方法,接收到同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載后,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡方法,參照圖4所示,該方法包括以下步驟:
步驟401、同步服務器接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求。
步驟402、同步服務器響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息。
其中,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率。
步驟403、同步服務器計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例。
其中,客戶端總數(shù)量為第一同步服務器能夠提供服務的客戶端的總數(shù)量。
步驟404、同步服務器計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例。
其中,總收發(fā)包流量為第一同步服務器能夠提供的總收發(fā)包流量。
步驟405、同步服務器發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器。
步驟406、客戶端服務器接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的第一比例、第二比例和當前cpu的使用率。
步驟407、客戶端服務器比較第一同步服務器的第一比例、第二比例和當前中央處理器cpu的使用率與所述預設比例閾值的關(guān)系。
步驟408、若第一比例、第二比例和當前cpu的使用率中至少一個大于預設比例閾值,客戶端服務器將第一同步服務器劃分為第一組。
步驟409、若第一比例、第二比例和當前cpu的使用率均小于或者等于預設比例閾值,客戶端服務器將第一同步服務器劃分為第二組。
其中,第一組中的同步服務器的負載高于第二組。
步驟410、客戶端服務器確定每一個第一同步服務器提供服務的服務時間。
其中,第一同步服務器為第一終端提供服務的服務時間可以指的是第一同步服務器為第三終端提供服務的結(jié)束時間。第三終端可以是第一同步服務器在當前時刻之前的前一次提供過服務的終端。
步驟411、客戶端服務器基于服務時間,獲取每一個第一同步服務器的時間權(quán)重。
其中,客戶端服務器可以根據(jù)每一個第一同步服務器上一次為第三終端提供服務的結(jié)束時間到當前時間之間的時間間隔的大小,來獲取第一同步服務器的時間權(quán)重;一種可行的實施方式是,可以按照從大到小的順序設置第一同步服務器的時間權(quán)重;時間間隔較大的同步服務器的時間權(quán)重較大。
步驟412、客戶端服務器基于時間權(quán)重的大小,按照預設排序規(guī)則將第一組對應的第一同步服務器進行排序。
其中,如果時間權(quán)重是按照從大到小的順序設置得到的,那么預設排序規(guī)則可以是從大小到小的順序。也就是說,可以按照時間權(quán)重的從大到小的順序?qū)⒌谝唤M對應的第一同步服務器排序。
步驟413、客戶端服務器按照排列順序,依次從第一組對應的第一同步服務器中確定目標服務器。
其中,客戶端服務器在確定目標服務器時,可以按照排列順序依次從第一組對應的第一同步服務器中確定目標服務器。即可以先選擇權(quán)重最大的第一同步服務器為目標服務器,然后依次類推。
步驟414、客戶端服務器發(fā)送服務指令至目標服務器。
其中,服務指令用于指示目標服務器為第一終端提供服務。
基于前述實施例,參照圖5所示,在本發(fā)明的其他實施例中,該方法還包括以下步驟:
步驟415、客戶端服務器將同步服務器集群中未發(fā)送自身的負載的同步服務器確定為第二同步服務器。
步驟416、從確定第二同步服務器起,客戶端服務器判斷在預設時間內(nèi)是否接收到第二同步服務器的負載。
其中,預設時間可以是根據(jù)之前同步服務器為終端提供服務的場景預先設定的一個時間段;例如,預設時間可以是一分鐘。
步驟417、若未接收到第二同步服務器的負載,客戶端服務器停止發(fā)送服務指令至第二同步服務器。
其中,如果在預設時間內(nèi),客戶端服務器沒有接收到第二同步服務器發(fā)送的自身的負載,客戶端服務器認為該第二同步服務器出現(xiàn)了故障(已失效);此時,客戶端服務器就不會再發(fā)送服務指令給該第二同步服務器。
步驟418、若重新接收到第二同步服務器發(fā)送的自身的負載,客戶端服務器執(zhí)行比較第一同步服務器的負載與第一預設比例閾值的關(guān)系的步驟。
其中,如果后續(xù)客戶端服務器又重新接收到第二同步服務器發(fā)送的自身的負載,那么客戶端服務器認為該第二同步服務器恢復正常,此時繼續(xù)執(zhí)行分別比較該同步服務器的負載與第一預設比例閾值的關(guān)系的步驟。
以客戶端服務器為游戲服務器、第一預設比例閾值為80%為例,在本發(fā)明的一種可行的實現(xiàn)方式中,如圖6中所示同步服務器在獲取到自身的負載后,可以主動將獲取到的自身的負載發(fā)送給游戲服務器;游戲服務器在接收到同步服務器的自身負載后,可以根據(jù)同步服務器自身的負載采用預設的分配算法將同步服務器分組;如此,最終可以將同步服務器劃分為重分配池、輕分配池和無效池三種。其中,重分配池中的同步服務器的負載大于80%,輕分配池中的同步服務器的負載小于或等于80%,無效池中的同步服務器以失效。同時,游戲服務器可以根據(jù)同步服務器自身的負載情況給同步服務器分配服務任務。
需要說明的是,本實施例中與其他實施例中相同步驟或相關(guān)概念的解釋可以參照其他實施例中的描述,此處不再贅述。
本發(fā)明的實施例所提供的負載均衡方法,接收到同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載后,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例還提供一種負載均衡方法,該方法包括以下步驟:
步驟a、客戶端服務器獲取第二組同步服務器中自身負載大于第二預設比例閾值的第三同步服務器。
其中,第二預設比例閾值大于第一預設比例閾值。該第二預設比例閾值是能夠表明當前同步服務器已經(jīng)接近其能夠承受的負載的一個極限數(shù)值;例如,第二預設比例閾值可以是95%。
步驟b、客戶端服務器確定第三同步服務器當前對應的第二終端。
其中,第二終端為第三同步服務器當前為其提供服務的終端。
步驟c、客戶端服務器發(fā)送服務切換指令至第一組第一同步服務器中的任一第一同步服務器。
其中,服務切換指令用于指示第一組同步服務器中的任一同步服務器為第二終端提供服務。
在本發(fā)明的其它實施例中,當?shù)诙M對應的第一同步服務器中,第一同步服務器的負載大于95%時,客戶端服務器確定該第一同步服務器已不能正常的給終端提供服務;此時,就需要指示第一組對應的第一同步服務器為該第三終端提供服務,即發(fā)送服務切換指令至第一組對應的任一第一同步服務器。
基于前述實施例,以包括兩個第一終端:終端1和終端2,終端1和終端2的用戶正在使用對應終端進行飛機大戰(zhàn)的游戲為例進行說明:游戲服務器在給終端1和終端2分配同步服務器的時候是采用本發(fā)明實施例中提供的負載均衡方法來進行的,即為終端1和終端2提供服務的同步服務器的負載都是小于80%的。如圖7所示,當終端1的玩家使用技能后可以在終端1的游戲界面上呈現(xiàn)圖7a中3的效果,與此同時如圖7b中所示終端2的游戲界面上也會顯示出4的效果;當終端2的玩家使用技能后,如圖7b中所示終端2的游戲界面上可以呈現(xiàn)5的效果,同時7a中所示終端1的游戲界面上也會顯示出6的效果。說明終端1的玩家和終端2的玩家不論哪個玩家施加技能后,對方的終端的游戲界面上可以在對方施加技能的同時顯示相應的技能效果。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡裝置6,該裝置可以應用于圖1~5對應的實施例提供的一種負載均衡方法中,參照圖8所示,該裝置包括:第一接收單元61、比較單元62、第一處理單元63和第一發(fā)送單元64,其中:
第一接收單元61,用于接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載;
其中,負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的。
比較單元62,用于比較第一同步服務器的負載與第一預設比例閾值的關(guān)系;
第一處理單元63,用于基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果;
第一處理單元63,還用于基于所述分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器作為目標服務器;
第一發(fā)送單元64,用于發(fā)送服務指令至目標服務器。
其中,服務指令用于指示目標服務器為第一終端提供服務。
本發(fā)明的實施例所提供的負載均衡裝置,同步服務器集群中的同步服務器獲取當前自身的負載并發(fā)送至客戶端服務器,客戶端服務器接收到同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載后,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
進一步,比較單元,具體用于分別比較第一同步服務器的第一比例、第二比例和當前cpu的使用率與預設比例閾值的關(guān)系。
其中,負載包括:第一比例、第二比例和當前cpu的使用率;第一比例為當前客戶端數(shù)量占客戶端總數(shù)量的比例,第二比例為當前收發(fā)包流量占總收發(fā)包流量的比例。
處理單元,具體用于若第一比例、第二比例和當前cpu的使用率中至少一個大于預設比例閾值,將第一同步服務器劃分為第一組。
處理單元,具體還用于若第一比例、第二比例和當前cpu的使用率均小于或者等于預設比例閾值,將第一同步服務器劃分為第二組。
其中,第一組中的同步服務器的負載高于第二組。
第一處理單元,還用于從第一組對應的第一同步服務器中,選擇任一第一同步服務器作為目標服務器。
進一步,該裝置還包括:第一獲取單元,其中:
第一獲取單元,用于獲取第一同步服務器的時間權(quán)重。
第一處理單元,還用于基于時間權(quán)重,從第一組對應的第一同步服務器中確定目標服務器。
在本發(fā)明的其他實施例中,第一獲取單元具體用于執(zhí)行以下步驟:
確定每一個第一同步服務器為第一終端提供服務的服務時間;
基于服務時間,獲取每一個第一同步服務器的時間權(quán)重。
在本發(fā)明的其他實施例中,第一處理單元具體用于執(zhí)行以下步驟:
基于時間權(quán)重的大小,按照預設排序規(guī)則將第一組對應的第一同步服務器進行排序;
按照排列順序,依次從第一組對應的第一同步服務器中確定目標服務器。
在本發(fā)明的其他實施例中,該裝置還包括:第二處理單元和判斷單元,其中:
第二處理單元,用于將所述同步服務器集群中未發(fā)送自身的負載的同步服務器確定為第二同步服務器;
判斷單元,用于從確定第二同步服務器起,判斷在預設時間內(nèi)是否接收到第二同步服務器的負載;
第二處理單元,還用于若未接收到第二同步服務器的負載,停止發(fā)送服務指令至第二同步服務器;
第二處理單元,還用于若接收到第二同步服務器發(fā)送的自身的負載,執(zhí)行比較第一同步服務器的負載與第一預設比例閾值的關(guān)系的步驟。
在本發(fā)明的其他實施例中,第二獲取單元,還用于獲取第二組同步服務器中自身負載大于第二預設比例閾值的第三同步服務器。
第一發(fā)送單元,還用于發(fā)送服務切換指令至第一組第一同步服務器中的任一第一同步服務器。
其中,服務切換指令用于指示第一組同步服務器中的任一同步服務器為第二終端提供服務。
需要說明的是,本實施例中各個單元和模塊之間的交互過程,可以參照圖1~5對應的實施例提供的一種負載均衡方法中的交互過程,此處不再贅述。
本發(fā)明的實施例所提供的負載均衡裝置,同步服務器集群中的同步服務器獲取當前自身的負載并發(fā)送至客戶端服務器,客戶端服務器接收到同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載后,比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡裝置7,該裝置可以應用于圖2~5對應的實施例提供的一種負載均衡方法中,參照圖9所示,該裝置包括:第二接收單元71、第二獲取單元72、計算單元73和第二發(fā)送單元74,其中:
第二接收單元71,用于接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求;
第二獲取單元72,用于響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息;
其中,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率;
計算單元73,用于計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例;
其中,客戶端總數(shù)量為第一同步服務器能夠提供服務的客戶端的總數(shù)量;
計算單元73,還用于計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例;
其中,總收發(fā)包流量為第一同步服務器能夠提供的總收發(fā)包流量;
第二發(fā)送單元74,用于發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器。
其中,第一比例、第二比例和當前cpu使用率是客戶端服務器用于確定目標服務器的;目標服務器是同步服務器集群中的至少一個第一同步服務器。
需要說明的是,本實施例中各個單元和模塊之間的交互過程,可以參照圖1~5對應的實施例提供的一種負載均衡方法中的交互過程,此處不再贅述。
本發(fā)明的實施例所提供的負載均衡方法,接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率,然后計算當前客戶端數(shù)量與客戶端總數(shù)量的第一比例,同時計算當前收發(fā)包流量與總收發(fā)包流量的第二比例,并發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器;目標服務器是同步服務器集群中的至少一個服務器;這樣,客戶端服務器可以根據(jù)接收到自身的第一比例、第二比例和當前cpu使用率確定目標服務器,因此客戶端服務器在給終端分配同步服務器的時候,可以根據(jù)每一個同步服務器當前的負載來進行,充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種客戶端服務器8,該服務器可以應用于圖1~5對應的實施例提供的負載均衡方法中,參照圖10所示,該客戶端服務器包括:第一通信接口81、第一處理器82和第一存儲器83,第一處理器82存在于處理組件84中,第一存儲器83中存儲有實現(xiàn)第一處理器的執(zhí)行步驟的程序代碼,其中:
第一通信接口81,用于接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載;
其中,負載是接收到用于開啟具有對戰(zhàn)功能應用的啟動請求后獲取的;
第一處理器82,用于比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,基于分組結(jié)果,從同步服務器集群中確定至少一個第一同步服務器作為目標服務器;
第一通信接口81,還用于發(fā)送服務指令至目標服務器。
其中,服務指令用于指示目標服務器為第一終端提供服務。
在本發(fā)明的其他實施例中,第一處理器還用于執(zhí)行以下步驟:
分別比較第一同步服務器的第一比例、第二比例和當前中央處理器cpu的使用率與預設比例閾值的關(guān)系;
其中,負載包括:第一比例、第二比例和當前cpu的使用率;第一比例為當前客戶端數(shù)量占客戶端總數(shù)量的比例,第二比例為當前收發(fā)包流量占總收發(fā)包流量的比例;
若第一比例、第二比例和當前cpu的使用率中至少一個大于預設比例閾值,將第一同步服務器劃分為第一組;
若第一比例、第二比例和當前cpu的使用率均小于或者等于預設比例閾值,將第一同步服務器劃分為第二組;
其中,第一組中的同步服務器的負載高于第二組。
在本發(fā)明的其他實施例中,第一處理器還用于從第一組對應的第一同步服務器中,選擇任一第一同步服務器作為目標服務器。
在本發(fā)明的其他實施例中,第一處理器還用于執(zhí)行以下步驟:
獲取第一同步服務器的時間權(quán)重;
基于時間權(quán)重,從第一組對應的第一同步服務器中確定目標服務器。
在本發(fā)明的其他實施例中,第一處理器具體用于執(zhí)行以下步驟:
確定每一個第一同步服務器為第一終端提供服務的服務時間;
基于服務時間,獲取每一個第一同步服務器的時間權(quán)重;
基于時間權(quán)重的大小,按照預設排序規(guī)則將第一組對應的第一同步服務器進行排序;
按照排列順序,依次從第一組對應的第一同步服務器中確定目標服務器。
在本發(fā)明的其他實施例中,第一處理器還用于執(zhí)行以下步驟:
將同步服務器集群中未發(fā)送自身的負載的同步服務器確定為第二同步服務器;
從確定第二同步服務器起,判斷在預設時間內(nèi)是否接收到第二同步服務器的負載;
若未接收到第二同步服務器的負載,停止發(fā)送服務指令至第二同步服務器;
若重新接收到第二同步服務器發(fā)送的自身的負載,執(zhí)行分別比較第一同步服務器的負載與第一預設比例閾值的關(guān)系的步驟。
在本發(fā)明的其他實施例中,第一處理器還用于執(zhí)行以下步驟:
獲取第二組同步服務器中自身負載大于第二預設比例閾值的第三同步服務器;
確定第三同步服務器當前對應的第二終端。
第一通信接口,還用于發(fā)送服務切換指令至第一組第一同步服務器中的任一第一同步服務器。
其中,服務切換指令用于指示第一組同步服務器中的任一同步服務器為第二終端提供服務。
需要說明的是,本實施例中各個器件之間的交互過程,可以參照圖1~5對應的實施例提供的負載均衡方法中的交互過程,此處不再贅述。
本發(fā)明的實施例所提供的客戶端服務器,客戶端服務器接收同步服務器集群中的多個第一同步服務器各自發(fā)送的自身的負載,分別比較第一同步服務器的負載與第一預設比例閾值的關(guān)系,并基于比較結(jié)果對第一同步服務器進行分組,得到分組結(jié)果,然后基于分組結(jié)果,從同步服務器集群中確定至少一個服務器為目標服務器,并發(fā)送服務指令至目標服務器;這樣,客戶端服務器在給終端分配同步服務器的時候,是根據(jù)每一個同步服務器當前的負載來進行的,即充分考慮了同步服務器當前的負載情況,解決了現(xiàn)有技術(shù)中存在的方服務器的負載過大時仍然需要給終端提供服務的問題,降低了終端的操作的時延,保證交互雙方的操作可以實時進行。
基于前述實施例,本發(fā)明的實施例提供一種同步服務器9,該同步服務器可以應用于圖2~5對應的實施例提供的一種負載均衡方法中,參照圖11所示,該同步服務器包括:第二通信接口91、第二處理器92和第二存儲器93,第二處理器92存在于處理組件94中,第二存儲器93中存儲有實現(xiàn)第二處理器的執(zhí)行步驟的程序代碼,其中:
第二通信接口91,用于接收第一終端發(fā)送的用于開啟具有對戰(zhàn)功能應用的啟動請求;
第二處理器92,用于響應啟動請求,獲取同步服務器集群中第一同步服務器當前運行信息;其中,當前運行信息包括:當前客戶端數(shù)量、當前收發(fā)包流量和當前cpu使用率;計算當前客戶端數(shù)量與客戶端總數(shù)量的比例關(guān)系,得到第一比例;其中,客戶端總數(shù)量為第一同步服務器能夠提供服務的客戶端的總數(shù)量;計算當前收發(fā)包流量與總收發(fā)包流量的比例關(guān)系,得到第二比例;其中,總收發(fā)包流量為第一同步服務器能夠提供的總收發(fā)包流量;
第二通信接口91,還用于發(fā)送第一比例、第二比例和當前cpu使用率至客戶端服務器;
其中,第一比例、第二比例和當前cpu使用率是客戶端服務器用于確定目標服務器的;目標服務器是同步服務器集群中的至少一個第一同步服務器。
基于前述實施例,本發(fā)明的實施例提供一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)中存儲有一個或多個計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)圖1~5對應的實施例提供的一種負載均衡方法中的步驟。
基于前述實施例,本發(fā)明的實施例提供一種負載均衡系統(tǒng),該系統(tǒng)可以包括:第一終端a、第二終端b、同步服務器c、客戶端服務器d和目標服務器e,其中:
同步服務器c為圖9或11對應的實施例提供的一種同步服務器,客戶端服務器d為圖8或10對應的實施例提供的一種客戶端服務器,目標服務器e為同步服務器集群中的至少一個服務器。
在實際應用中,所述第一接收單元61、比較單元62、第一處理單元63、第一發(fā)送單元64、第一獲取單元、第二處理單元、判斷單元、第二接收單元71、第二獲取單元72、計算單元73和第二發(fā)送單元74均可由位于無線數(shù)據(jù)發(fā)送設備中的中央處理器(centralprocessingunit,cpu)、微處理器(microprocessorunit,mpu)、數(shù)字信號處理器(digitalsignalprocessor,dsp)或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)等實現(xiàn)。
本領域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。