当玩家id为0,说明是登陆或注册消息,随机挑选一个该类型下的节点发消息。
This commit is contained in:
parent
94b2989521
commit
76e86c9f06
@ -114,17 +114,23 @@ func (m *UserBindService) RandServiceNode(typeId pb.ServiceTypeId) (*etcd.Servic
|
|||||||
|
|
||||||
// 根据服务类型,路由到对应的服务节点
|
// 根据服务类型,路由到对应的服务节点
|
||||||
func (m *UserBindService) FindServiceName(userId int64, typeId pb.ServiceTypeId) (string, error) {
|
func (m *UserBindService) FindServiceName(userId int64, typeId pb.ServiceTypeId) (string, error) {
|
||||||
// 内存中没有,向redis中查询。redis中保留的服务节点不一定是可用的,还需要向etcd中验证
|
if userId > 0 {
|
||||||
if sName := m.LoadFromRedis(userId, typeId); sName != "" && m.serviceIsValid(sName) {
|
// 向redis中查询。redis中保留的服务节点不一定是可用的,还需要向etcd中验证
|
||||||
return sName, nil
|
sName := m.LoadFromRedis(userId, typeId)
|
||||||
|
// log.DebugF("user:%v查找到服务节点:%s", userId, sName)
|
||||||
|
if sName != "" && m.serviceIsValid(sName) {
|
||||||
|
return sName, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// log.DebugF("user:%v查找到服务节点:%s为无效节点", userId, sName)
|
||||||
// redis也没有玩家的服务节点信息,从etcd中找可用服务节点随机选择一个
|
// redis也没有玩家的服务节点信息,从etcd中找可用服务节点随机选择一个
|
||||||
node, err := m.RandServiceNode(typeId)
|
node, err := m.RandServiceNode(typeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.ErrorF("etcd中随机一个服务节点时,错误:%v", err)
|
log.ErrorF("etcd中随机一个服务节点时,错误:%v", err)
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
//log.DebugF("etcd中随机一个服务节点:%s", node.Name)
|
// log.DebugF("etcd中随机一个服务节点:%s", node.Name)
|
||||||
m.rdb.Set(context.Background(), m.makeRedisKey(userId, typeId), node.Name, 2*24*time.Hour)
|
m.rdb.Set(context.Background(), m.makeRedisKey(userId, typeId), node.Name, 2*24*time.Hour)
|
||||||
return node.Name, nil
|
return node.Name, nil
|
||||||
}
|
}
|
||||||
|
4
工作.txt
4
工作.txt
@ -13,8 +13,8 @@
|
|||||||
2.05 redis写入数据的字段名有误。(已修复)
|
2.05 redis写入数据的字段名有误。(已修复)
|
||||||
2.06 struct序列化到redis中时需要处理时间格式。(已修复)
|
2.06 struct序列化到redis中时需要处理时间格式。(已修复)
|
||||||
2.07 清理登陆相关调试日志。(已完成)
|
2.07 清理登陆相关调试日志。(已完成)
|
||||||
2.08 login服切换到其它地方启动后,gate服会路由失败。
|
2.08 login服切换到其它地方启动后,gate服会路由失败。(已修复,etcd没有删除失效节点导致。)
|
||||||
2.08 login在创建帐号时,还需要创建user。
|
2.09 login在创建帐号时,还需要创建user。
|
||||||
|
|
||||||
3.编写color game玩法
|
3.编写color game玩法
|
||||||
3.1 服务端玩法
|
3.1 服务端玩法
|
||||||
|
Loading…
x
Reference in New Issue
Block a user