如何针对Space的创建进行负载均衡?
大约 2 分钟
针对Space的创建进行负载均衡
在《如何管理多个Spaces?》中,我们知道了管理space的重要性以及如何实施,在实际的服务器应用中,把Space创建在哪个指定的服务器上,如何充分利用服务器资源,让整个系统负载均衡,也是至关重要。
本节就会围绕Space创建的负载均衡展开阐述。
背景
Space空间是在Cellapp服务器上的,其创建和销毁、用户的频繁交互、触发器和移动系统的计算、View视图的管理等都会在空间中进行。虽然它是一个内网环境,没有外部带宽的约束,但对CPU和内存方面的要求会相对高一些,服务器资源是相对固定的,所以开发者在设计系统时需要考虑如何把不同业务不同类型的房间平摊到不同Cellapp服务器上,把服务器资源充分利用起来。
核心API
Baseapp API-Entity.createCellEntityInNewSpace(cellappIndex),如果cellappIndex参数为None或0,则是通过CellappMgr来自动分配创建在哪个Cellapp上的,这使得负载均衡成为可能。如果该值大于0则会创建到指定的Cellapp上。
应用场景
1、房间类应用
该应用类型中,一个房间是相对独立的空间,或者说是一个Space空间,两个房间之间几乎不会有任何交互。
应用举例:
- 棋牌类游戏,如斗地主等;
- 局类游戏,如MOBA、IO游戏(球球大作战)等
2、有副本业务的应用
和房间类应用类似,每个副本之间是相对独立的,也可以利用负载均衡的思路。
应用举例:
- MMORPG游戏,其副本可以采用负载均衡的思路。
- ARPG游戏,冲关卡时进入的副本地图。
参考
与完全利用负载均衡机制不同的是,有些业务需求下需要把Space空间创建在指定的Cellapp上。具体可参见如何把Space创建到指定Cellapp上?。