程序包 com.iohao.game.action.skeleton.protocol.processor
package com.iohao.game.action.skeleton.protocol.processor
业务框架 - 内部协议 - 玩家动态绑定游戏逻辑服
简介
动态绑定游戏逻辑服,指的是玩家与游戏逻辑服绑定后,之后的请求都由该游戏逻辑服来处理。 玩家动态绑定逻辑服节点后,之后的请求都由这个绑定的游戏逻辑服来处理,可以实现类似 LOL、王者荣耀匹配后动态分配房间的效果。 支持玩家与多个游戏逻辑服的动态绑定。
使用场景
跨服活动、跨服战斗等。 动态绑定游戏逻辑服可以解决玩家增量的问题,我们都知道一台机器所能承载的运算是有上限的;当上限达到时,就需要增加新机器来分摊请求量;如果你开发的游戏是有状态的,那么你如何解决请求分配的问题呢?在比如让你做一个类似 LOL、王者荣耀的匹配,将匹配好的玩家分配到一个房间中,之后这些玩家的请求都能在同一个游戏逻辑服上处理,这种业务你该如何实现呢? 使用框架提供的动态绑定逻辑服节点可以轻松解决此类问题,而且还可以根据业务规则,计算出当前空闲最多的游戏逻辑服,并将此游戏逻辑服与玩家做绑定,从而做到均衡的利用机器资源,来防止请求倾斜的问题。
for example
// 绑定消息
EndPointLogicServerMessage endPointLogicServerMessage = new EndPointLogicServerMessage()
// 需要绑定的玩家,示例中只取了当前请求匹配的玩家
.setUserList(userIdList)
// 添加需要绑定的逻辑服id,下面绑定了两个;
// 1.给绑定一个房间游戏逻辑服的 id
// 2.绑定 animal 游戏逻辑服就简单点,固定写 id 为 2-1 的;
.addLogicServerId(logicServerId)
.addLogicServerId("2-1")
// 覆盖绑定游戏逻辑服
.setOperation(EndPointOperationEnum.COVER_BINDING);
// 发送消息到网关
ProcessorContext processorContext = BrokerClientHelper.getProcessorContext();
processorContext.invokeOneway(endPointLogicServerMessage);
- 作者:
- 渔民小镇
- 日期:
- 2024-08-07
-
类说明玩家绑定逻辑服游戏逻辑服动态绑定枚举一些简单的服务器信息