一种地图处理方法、装置、电子设备和可读存储介质与流程
- 国知局
- 2024-07-11 16:00:38
本技术实施例涉及互联网,尤其涉及一种地图处理方法、装置、电子设备和可读存储介质。
背景技术:
1、现有技术中对于地图分区域的方案一般是通过将地图切分为多个区域,然后再将各个区域部署到不同的服务器上,实现地图的切割和扩展。但无法对运行的服务进行动态的扩容或服务器的切换,若当前的服务负载过高,会造成游戏卡顿,导致运行的服务的可靠性不高,集群管理过于混乱。
技术实现思路
1、本技术实施例提供一种地图处理方法、装置、电子设备和可读存储介质,以解决现有的无法对运行的服务进行动态的扩容或服务器的切换的问题。
2、为了解决上述技术问题,本技术是这样实现的:
3、第一方面,本技术实施例提供了一种地图处理方法,包括:
4、获取目标地图;
5、将所述目标地图划分为多个区域,得到多个区域地图;
6、将所述多个区域地图作为区域地图的主副本,分别分配至服务器集群中的多个第一服务器,所述第一服务器作为主服务器;
7、为每个所述区域地图创建区域地图的从副本,将所述从副本分配至所述服务器集群中的第二服务器,所述第二服务器作为从服务器,同一个区域地图对应的主服务器和从服务器为不同的服务器;
8、获取服务器集群中所有服务器的键值的状态,并根据所述键值的状态更新所述区域地图和/或副本的分配情况。
9、可选的,所述获取服务器集群中所有服务器的键值的状态,并根据所述键值的状态更新所述区域地图和/或副本的分配情况,包括:
10、获取服务器集群中所有服务器的键值的失效状态;
11、判断失效的服务器是否为主服务器;
12、若所述失效的服务器为主服务器,则从所述失效的服务器对应的从服务器中选取一个服务器作为主服务器,并重新创建所述失效的服务器中的区域地图的副本,将所述从副本分配至一个新的第二服务器,作为从服务器;
13、若所述失效的服务器为从服务器,则重新创建所述失效的服务器中的区域地图的副本,并将所述从副本分配至一个新的第二服务器,作为从服务器。
14、可选的,所述获取服务器集群中所有服务器的键值的状态,并根据所述键值的状态更新所述区域地图和/或副本的分配情况,包括:
15、获取服务器集群中所有服务器的键值的新增状态;
16、判断当前运行的服务器上的负载差值是否超过预设的差值阈值;
17、若当前运行的服务器上的负载差值超过预设的差值阈值,则将当前运行的服务器中的负载过高的服务器上的区域地图或区域地图的副本转移至新增的服务器中。
18、可选的,所述获取目标地图之后,还包括:
19、将所述目标地图划分为多个网格,为每个所述网格设置一个网格编号,所述网格编号用于指示所述目标地图中的用户的位置信息,每个区域地图中包括多个所述网格。
20、可选的,还包括:
21、获取客户端在所述目标地图上的网格编号的变化情况;
22、根据所述网格编号的变化情况判断所述客户端的数据的消息类型;
23、根据所述消息类型将更新的数据转发至对应区域的主服务器,所述主服务器并向对应的从服务器进行同步。
24、可选的,还包括:
25、向所述客户端所处的网格的周边预设范围内的网格中所包括的客户端发送所述客户端的更新的数据。
26、第二方面,本技术实施例提供了一种地图处理装置,包括:
27、第一获取模块,用于获取目标地图;
28、第一处理模块,用于将所述目标地图划分为多个区域,得到多个区域地图;
29、第一分配模块,用于将所述多个区域地图作为区域地图的主副本,分别分配至服务器集群中的多个第一服务器,所述第一服务器作为主服务器;
30、第二分配模块,用于为每个所述区域地图创建区域地图的从副本,将所述从副本分配至所述服务器集群中的第二服务器,所述第二服务器作为从服务器,同一个区域地图对应的主服务器和从服务器为不同的服务器;
31、第二处理模块,用于获取服务器集群中所有服务器的键值的状态,并根据所述键值的状态更新所述区域地图和/或副本的分配情况。
32、可选的,所述第二处理模块,包括:
33、第一获取子模块,用于获取服务器集群中所有服务器的键值的失效状态;
34、第一判断模块,用于判断失效的服务器是否为主服务器;
35、第一处理子模块,用于若所述失效的服务器为主服务器,则从所述失效的服务器对应的从服务器中选取一个服务器作为主服务器,并重新创建所述失效的服务器中的区域地图的副本,将所述从副本分配至一个新的第二服务器,作为从服务器;
36、第二处理子模块,用于若所述失效的服务器为从服务器,则重新创建所述失效的服务器中的区域地图的副本,并将所述从副本分配至一个新的第二服务器,作为从服务器。
37、可选的,所述第二处理模块,包括:
38、第二获取子模块,用于获取服务器集群中所有服务器的键值的新增状态;
39、第二判断模块,用于判断当前运行的服务器上的负载差值是否超过预设的差值阈值;
40、第三处理子模块,用于若当前运行的服务器上的负载差值超过预设的差值阈值,则将当前运行的服务器中的负载过高的服务器上的区域地图或区域地图的副本转移至新增的服务器中。
41、可选的,还包括:
42、第三处理模块,用于将所述目标地图划分为多个网格,为每个所述网格设置一个网格编号,所述网格编号用于指示所述目标地图中的用户的位置信息,每个区域地图中包括多个所述网格。
43、可选的,还包括:
44、第二获取模块,用于获取客户端在所述目标地图上的网格编号的变化情况;
45、第四处理模块,用于根据所述网格编号的变化情况判断所述客户端的数据的消息类型;
46、第五处理模块,用于根据所述消息类型将更新的数据转发至对应区域的主服务器,所述主服务器并向对应的从服务器进行同步。
47、可选的,还包括:
48、发送模块,用于向所述客户端所处的网格的周边预设范围内的网格中所包括的客户端发送所述客户端的更新的数据。
49、第三方面,本技术实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的地图处理方法中的步骤。
50、第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的地图处理方法中的步骤。
51、在本技术中,通过对目标地图进行划分并创建区域地图的从副本分配至不同的服务器中,当主服务器挂掉的时候,集群控制器会将副本所在的服务器升级为主服务器,保证该地图区域持续提供服务,并通过监控表示各服务器状态的键值,并根据各服务器状态的键值对各服务器的运行状况进行切换或均衡负载,当服务器负载过高时,可随时加入新的服务器,会自动进行扩容,达到自动负载均衡,解决了现有的无法对运行的服务进行动态的扩容或服务器的切换的问题。
本文地址:https://www.jishuxx.com/zhuanli/20240615/76982.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表