From 76e86c9f06fdb359f65b19fb7a8d4e5662450e27 Mon Sep 17 00:00:00 2001 From: liuxiaobo Date: Thu, 5 Jun 2025 15:36:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93=E7=8E=A9=E5=AE=B6id=E4=B8=BA0?= =?UTF-8?q?=EF=BC=8C=E8=AF=B4=E6=98=8E=E6=98=AF=E7=99=BB=E9=99=86=E6=88=96?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=B6=88=E6=81=AF=EF=BC=8C=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E6=8C=91=E9=80=89=E4=B8=80=E4=B8=AA=E8=AF=A5=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E8=8A=82=E7=82=B9=E5=8F=91=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/userBindService/userService.go | 14 ++++++++++---- 工作.txt | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/common/userBindService/userService.go b/common/userBindService/userService.go index a6f7e16..0f1344b 100644 --- a/common/userBindService/userService.go +++ b/common/userBindService/userService.go @@ -114,17 +114,23 @@ func (m *UserBindService) RandServiceNode(typeId pb.ServiceTypeId) (*etcd.Servic // 根据服务类型,路由到对应的服务节点 func (m *UserBindService) FindServiceName(userId int64, typeId pb.ServiceTypeId) (string, error) { - // 内存中没有,向redis中查询。redis中保留的服务节点不一定是可用的,还需要向etcd中验证 - if sName := m.LoadFromRedis(userId, typeId); sName != "" && m.serviceIsValid(sName) { - return sName, nil + if userId > 0 { + // 向redis中查询。redis中保留的服务节点不一定是可用的,还需要向etcd中验证 + 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中找可用服务节点随机选择一个 node, err := m.RandServiceNode(typeId) if err != nil { log.ErrorF("etcd中随机一个服务节点时,错误:%v", 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) return node.Name, nil } diff --git a/工作.txt b/工作.txt index b251eee..8b01e1d 100644 --- a/工作.txt +++ b/工作.txt @@ -13,8 +13,8 @@ 2.05 redis写入数据的字段名有误。(已修复) 2.06 struct序列化到redis中时需要处理时间格式。(已修复) 2.07 清理登陆相关调试日志。(已完成) - 2.08 login服切换到其它地方启动后,gate服会路由失败。 - 2.08 login在创建帐号时,还需要创建user。 + 2.08 login服切换到其它地方启动后,gate服会路由失败。(已修复,etcd没有删除失效节点导致。) + 2.09 login在创建帐号时,还需要创建user。 3.编写color game玩法 3.1 服务端玩法