diff --git a/config/config.yaml b/config/config.yaml index da3d2cb1f..95b8b4f65 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -19,7 +19,7 @@ mysql: dbMaxOpenConns: 100 dbMaxIdleConns: 10 dbMaxLifeTime: 5 - logLevel: 6 #1=slient 2=error 3=warn 4=info + logLevel: 4 #1=slient 2=error 3=warn 4=info slowThreshold: 500 mongo: diff --git a/go.mod b/go.mod index 1e8293056..81b27f38d 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( firebase.google.com/go v3.13.0+incompatible - github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004 + github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67 github.com/OpenIMSDK/open_utils v1.0.8 github.com/Shopify/sarama v1.32.0 github.com/antonfisher/nested-logrus-formatter v1.3.1 diff --git a/go.sum b/go.sum index 20ecd88bb..bde1b45fe 100644 --- a/go.sum +++ b/go.sum @@ -391,6 +391,8 @@ github.com/OpenIMSDK/openKeeper v0.0.6 h1:0eseL/h+evxZAM5Dqs85FEDbDFkTjpVwHBSINQ github.com/OpenIMSDK/openKeeper v0.0.6/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004 h1:+1t9eKPKV/NyQARgVUv6TgOWSf8uKu8rkS41+utSIMk= github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= +github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67 h1:I6QLciX4LlavBMNyeqkp90DJV+uKcwke7NZ9OKMIjV8= +github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= github.com/OpenIMSDK/open_utils v1.0.8 h1:IopxWgJwEF5ZAPsRuiZZOfcxNOQOCt/p8VDENcHN9r4= github.com/OpenIMSDK/open_utils v1.0.8/go.mod h1:FLoaQblWUVKQgqt2LrNzfSZLT6D3DICBn1kcOMDLUOI= github.com/Shopify/sarama v1.29.0 h1:ARid8o8oieau9XrHI55f/L3EoRAhm9px6sonbD7yuUE= diff --git a/internal/api/group.go b/internal/api/group.go index bd517d050..fc87dbbc1 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -5,6 +5,7 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" @@ -26,6 +27,7 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { if err != nil { return nil, err } + log.ZDebug(ctx, "get conn", "local", o.c.GetClientLocalConns()) return group.NewGroupClient(conn), nil } diff --git a/internal/api/route.go b/internal/api/route.go index f38cf2146..1049dd93d 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -67,9 +67,10 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal friendRouterGroup.POST("/import_friend", f.ImportFriends) //1 friendRouterGroup.POST("/is_friend", f.IsFriend) //1 } - groupRouterGroup := r.Group("/group") g := NewGroup(zk) + groupRouterGroup := r.Group("/group") { + groupRouterGroup.Use(mw.GinParseToken(rdb)) groupRouterGroup.POST("/create_group", g.NewCreateGroup) //1 groupRouterGroup.POST("/set_group_info", g.NewSetGroupInfo) //1 diff --git a/internal/rpc/msg/server.go b/internal/rpc/msg/server.go index 0aecb0943..cc80e32c2 100644 --- a/internal/rpc/msg/server.go +++ b/internal/rpc/msg/server.go @@ -132,19 +132,14 @@ func (m *msgServer) GetMaxSeq(ctx context.Context, req *sdkws.GetMaxSeqReq) (*sd if err != nil { return nil, err } + log.ZDebug(ctx, "GetMaxSeq", "conversationIDs", conversationIDs) maxSeqs, err := m.MsgDatabase.GetMaxSeqs(ctx, conversationIDs) if err != nil { - log.ZWarn(ctx, "GetMaxSeqs error", err, "conversationIDs", conversationIDs) - return nil, err - } - minSeqs, err := m.MsgDatabase.GetMinSeqs(ctx, conversationIDs) - if err != nil { - log.ZWarn(ctx, "GetMinSeqs error", err, "conversationIDs", conversationIDs) + log.ZWarn(ctx, "GetMaxSeqs error", err, "conversationIDs", conversationIDs, "maxSeqs", maxSeqs) return nil, err } resp := new(sdkws.GetMaxSeqResp) resp.MaxSeqs = maxSeqs - resp.MinSeqs = minSeqs return resp, nil } diff --git a/pkg/a2r/api2rpc.go b/pkg/a2r/api2rpc.go index 7c21961e9..d6b56696d 100644 --- a/pkg/a2r/api2rpc.go +++ b/pkg/a2r/api2rpc.go @@ -36,6 +36,7 @@ func Call[A, B, C any]( } data, err := rpc(cli, c, &req) if err != nil { + log.ZError(c, "rpc call error", err, "req", req) apiresp.GinError(c, err) // RPC调用失败 return } diff --git a/pkg/common/cmd/rpc.go b/pkg/common/cmd/rpc.go index 6c6e9b485..d24073940 100644 --- a/pkg/common/cmd/rpc.go +++ b/pkg/common/cmd/rpc.go @@ -1,6 +1,8 @@ package cmd import ( + "errors" + "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/startrpc" "github.com/spf13/cobra" @@ -25,5 +27,8 @@ func (a *RpcCmd) Exec() error { } func (a *RpcCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { + if a.GetPortFlag() == 0 { + return errors.New("port is required") + } return startrpc.Start(a.GetPortFlag(), name, a.GetPrometheusPortFlag(), rpcFn) } diff --git a/pkg/common/convert/user.go b/pkg/common/convert/user.go index 51e940db1..de25fd434 100644 --- a/pkg/common/convert/user.go +++ b/pkg/common/convert/user.go @@ -17,6 +17,7 @@ func UsersDB2Pb(users []*relationTb.UserModel) (result []*sdkws.UserInfo) { userPb.CreateTime = user.CreateTime.Unix() userPb.AppMangerLevel = user.AppMangerLevel userPb.GlobalRecvMsgOpt = user.GlobalRecvMsgOpt + result = append(result, &userPb) } return result } diff --git a/pkg/common/db/cache/msg.go b/pkg/common/db/cache/msg.go index 4b12413ba..2f717bbcd 100644 --- a/pkg/common/db/cache/msg.go +++ b/pkg/common/db/cache/msg.go @@ -146,12 +146,13 @@ func (c *msgCache) getSeq(ctx context.Context, conversationID string, getkey fun func (c *msgCache) getSeqs(ctx context.Context, items []string, getkey func(s string) string) (m map[string]int64, err error) { pipe := c.rdb.Pipeline() for _, v := range items { + log.ZDebug(ctx, "getSeqs", "getkey", getkey(v)) if err := pipe.Get(ctx, getkey(v)).Err(); err != nil && err != redis.Nil { - return nil, err + return nil, errs.Wrap(err) } } result, err := pipe.Exec(ctx) - if err != nil { + if err != nil && err != redis.Nil { return nil, errs.Wrap(err) } m = make(map[string]int64, len(items)) diff --git a/pkg/common/db/relation/friend_request_model.go b/pkg/common/db/relation/friend_request_model.go index 9cb30ecbf..956f733a7 100644 --- a/pkg/common/db/relation/friend_request_model.go +++ b/pkg/common/db/relation/friend_request_model.go @@ -59,7 +59,7 @@ func (f *FriendRequestGorm) FindToUserID(ctx context.Context, toUserID string, p if err != nil { return nil, 0, utils.Wrap(err, "") } - err = utils.Wrap(f.db(ctx).Where("to_user_id = ? ", toUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber-1)).Find(&friendRequests).Error, "") + err = utils.Wrap(f.db(ctx).Where("to_user_id = ? ", toUserID).Limit(int(showNumber)).Offset(int(pageNumber-1)*int(showNumber)).Find(&friendRequests).Error, "") return } @@ -69,6 +69,6 @@ func (f *FriendRequestGorm) FindFromUserID(ctx context.Context, fromUserID strin if err != nil { return nil, 0, utils.Wrap(err, "") } - err = utils.Wrap(f.db(ctx).Where("from_user_id = ? ", fromUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber-1)).Find(&friendRequests).Error, "") + err = utils.Wrap(f.db(ctx).Where("from_user_id = ? ", fromUserID).Limit(int(showNumber)).Offset(int(pageNumber-1)*int(showNumber)).Find(&friendRequests).Error, "") return } diff --git a/pkg/discoveryregistry/discovery_register.go b/pkg/discoveryregistry/discovery_register.go index 31eae9ead..880e31e20 100644 --- a/pkg/discoveryregistry/discovery_register.go +++ b/pkg/discoveryregistry/discovery_register.go @@ -4,12 +4,15 @@ import ( "context" "google.golang.org/grpc" + "google.golang.org/grpc/resolver" ) type Conn interface { GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) GetConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) AddOption(opts ...grpc.DialOption) + // do not use this method for call rpc + GetClientLocalConns() map[string][]resolver.Address } type SvcDiscoveryRegistry interface {