[發明專利]有狀態服務器負載均衡的方法、系統、裝置和存儲介質在審
| 申請號: | 202011301122.6 | 申請日: | 2020-11-19 |
| 公開(公告)號: | CN112506647A | 公開(公告)日: | 2021-03-16 |
| 發明(設計)人: | 肖鐵 | 申請(專利權)人: | 杭州電魂網絡科技股份有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;A63F13/352 |
| 代理公司: | 杭州創智卓英知識產權代理事務所(普通合伙) 33324 | 代理人: | 張超 |
| 地址: | 310051 浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 狀態 服務器 負載 均衡 方法 系統 裝置 存儲 介質 | ||
本申請涉及一種有狀態服務器負載均衡的方法、系統、裝置和存儲介質,其中,該有狀態服務器負載均衡的方法包括:獲取后端服務器中的空閑服務器,該空閑服務器為第一服務器,通過redis的setex指令將游戲資源分配到第一服務器上,然后將游戲資源連接到第一服務器進行服務,并在預設間隔時間內,第一服務器通過redis與游戲資源的綁定關系進行續期,最后在經過redis中的預設時間沒有續期的情況下,第一服務器與游戲資源的綁定關系過期,游戲資源進行重新分配。通過本申請,解決了在有狀態服務器中對游戲資源進行分配時,負載分配不均、系統出現單點故障和服務器難以動態擴容的問題。
技術領域
本申請涉及計算機領域,特別是涉及有狀態服務器負載均衡的方法、系統、裝置和存儲介質。
背景技術
對服務器程序來說,有兩個重要的基本假設,即服務器是基于狀態請求還是無狀態請求,其中,游戲服務器一般都是有狀態服務器。有狀態服務器在服務端維護每個連接的狀態信息,服務端在接收到每個連接發送的請求時,可以從本地存儲的信息來重現上下文關系。這樣,客戶端可以很容易使用缺省的信息,服務端也可以很容易地進行狀態管理。例如,當游戲用戶登錄后,服務端可以根據用戶名獲取他先前的游戲注冊信息;而且在后續的處理中,服務端能很容易找到這個用戶的歷史信息。
在相關技術中,有狀態服務器的負載均衡方式一種是通過hash方式,然而這種方式難以動態擴容,而且會存在負載分配不均的問題;另一種方式是通過一個中心服進行負載分配,但是會存在服務器單點故障的問題。
針對相關技術中,在有狀態服務器中對游戲資源進行分配時,負載分配不均、系統出現單點故障和服務器難以動態擴容的問題,尚未提出有效的解決方案。
發明內容
本申請實施例提供了有狀態服務器負載均衡的方法、系統、裝置和存儲介質,至少解決相關技術中在有狀態服務器中對游戲資源進行分配時,負載分配不均、系統出現單點故障和服務器難以動態擴容的問題。
第一方面,本申請實施例提供了一種有狀態服務器負載均衡的方法,所述方法包括:
獲取后端服務器中的空閑服務器,所述空閑服務器為第一服務器;
通過redis的setex指令將游戲資源分配到所述第一服務器上;
將所述游戲資源連接到所述第一服務器進行服務,并在預設間隔時間內,所述第一服務器通過所述redis與所述游戲資源的綁定關系進行續期;
在經過所述redis中的預設時間沒有續期的情況下,所述第一服務器與所述游戲資源的所述綁定關系過期,所述游戲資源進行重新分配。
在其中一些實施例中,在將所述游戲資源連接到所述第一服務器進行服務之前,所述方法包括:
通過redis的get指令始終獲取所述游戲資源當前所在的服務器,所述服務器為第二服務器。
在其中一些實施例中,所述獲取后端服務器中的空閑服務器包括:
獲取存儲在所述redis中的所述空閑服務器的ID;
服務發現協議通過所述ID定位到所述空閑服務器。
在其中一些實施例中,所述第一服務器與所述游戲資源的所述綁定關系過期包括:
在所述第一服務器宕機或游戲玩家退出登陸的情況下,所述第一服務器與所述游戲資源的所述綁定關系過期。
第二方面,本申請實施例提供了一種有狀態服務器負載均衡的系統,所述系統包括:
獲取模塊,用于獲取后端服務器中的空閑服務器,所述空閑服務器為第一服務器;
分配模塊,用于通過redis的setex指令將游戲資源分配到所述第一服務器上;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州電魂網絡科技股份有限公司,未經杭州電魂網絡科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011301122.6/2.html,轉載請聲明來源鉆瓜專利網。





