From 4310f6055dec1f59be4e61e0d15630c0b1161dd2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 30 Jun 2023 15:34:54 +0800 Subject: [PATCH 1/3] msg --- internal/rpc/conversation/conversaion.go | 4 +--- internal/rpc/friend/friend.go | 3 ++- internal/rpc/group/group.go | 14 ++++++++------ internal/rpc/user/user.go | 3 ++- pkg/rpcclient/msg.go | 5 ++--- pkg/rpcclient/notification/conevrsation.go | 5 ++--- pkg/rpcclient/notification/friend.go | 6 +++--- pkg/rpcclient/notification/group.go | 5 ++--- 8 files changed, 22 insertions(+), 23 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index a664fadeb..941327dd2 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -24,7 +24,6 @@ type conversationServer struct { groupRpcClient *rpcclient.GroupRpcClient conversationDatabase controller.ConversationDatabase conversationNotificationSender *notification.ConversationNotificationSender - msgRpcClient *rpcclient.MessageRpcClient } func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error { @@ -43,9 +42,8 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e groupRpcClient := rpcclient.NewGroupRpcClient(client) msgRpcClient := rpcclient.NewMessageRpcClient(client) pbConversation.RegisterConversationServer(server, &conversationServer{ - conversationNotificationSender: notification.NewConversationNotificationSender(client), + conversationNotificationSender: notification.NewConversationNotificationSender(&msgRpcClient), groupRpcClient: &groupRpcClient, - msgRpcClient: &msgRpcClient, conversationDatabase: controller.NewConversationDatabase(conversationDB, cache.NewConversationRedis(rdb, cache.GetDefaultOpt(), conversationDB), tx.NewGorm(db)), }) return nil diff --git a/internal/rpc/friend/friend.go b/internal/rpc/friend/friend.go index 9c830b7fe..7c3723583 100644 --- a/internal/rpc/friend/friend.go +++ b/internal/rpc/friend/friend.go @@ -45,7 +45,8 @@ func Start(client registry.SvcDiscoveryRegistry, server *grpc.Server) error { blackDB := relation.NewBlackGorm(db) friendDB := relation.NewFriendGorm(db) userRpcClient := rpcclient.NewUserRpcClient(client) - notificationSender := notification.NewFriendNotificationSender(client, notification.WithRpcFunc(userRpcClient.GetUsersInfo)) + msgRpcClient := rpcclient.NewMessageRpcClient(client) + notificationSender := notification.NewFriendNotificationSender(&msgRpcClient, notification.WithRpcFunc(userRpcClient.GetUsersInfo)) pbfriend.RegisterFriendServer(server, &friendServer{ friendDatabase: controller.NewFriendDatabase(friendDB, relation.NewFriendRequestGorm(db), cache.NewFriendCacheRedis(rdb, friendDB, cache.GetDefaultOpt()), tx.NewGorm(db)), blackDatabase: controller.NewBlackDatabase(blackDB, cache.NewBlackCacheRedis(rdb, blackDB, cache.GetDefaultOpt())), diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 13d8c9e83..500ff807a 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -48,20 +48,22 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e if err != nil { return err } - user := rpcclient.NewUserRpcClient(client) + userRpcClient := rpcclient.NewUserRpcClient(client) + msgRpcClient := rpcclient.NewMessageRpcClient(client) + conversationRpcClient := rpcclient.NewConversationRpcClient(client) database := controller.InitGroupDatabase(db, rdb, mongo.GetDatabase()) pbGroup.RegisterGroupServer(server, &groupServer{ GroupDatabase: database, - User: user, - Notification: notification.NewGroupNotificationSender(database, client, func(ctx context.Context, userIDs []string) ([]notification.CommonUser, error) { - users, err := user.GetUsersInfo(ctx, userIDs) + User: userRpcClient, + Notification: notification.NewGroupNotificationSender(database, &msgRpcClient, func(ctx context.Context, userIDs []string) ([]notification.CommonUser, error) { + users, err := userRpcClient.GetUsersInfo(ctx, userIDs) if err != nil { return nil, err } return utils.Slice(users, func(e *sdkws.UserInfo) notification.CommonUser { return e }), nil }), - conversationRpcClient: rpcclient.NewConversationRpcClient(client), - msgRpcClient: rpcclient.NewMessageRpcClient(client), + conversationRpcClient: conversationRpcClient, + msgRpcClient: msgRpcClient, }) return nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 25720f938..c7e72499e 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -55,11 +55,12 @@ func Start(client registry.SvcDiscoveryRegistry, server *grpc.Server) error { cache := cache.NewUserCacheRedis(rdb, userDB, cache.GetDefaultOpt()) database := controller.NewUserDatabase(userDB, cache, tx.NewGorm(db)) friendRpcClient := rpcclient.NewFriendRpcClient(client) + msgRpcClient := rpcclient.NewMessageRpcClient(client) u := &userServer{ UserDatabase: database, RegisterCenter: client, friendRpcClient: &friendRpcClient, - notificationSender: notification.NewFriendNotificationSender(client, notification.WithDBFunc(database.FindWithError)), + notificationSender: notification.NewFriendNotificationSender(&msgRpcClient, notification.WithDBFunc(database.FindWithError)), } pbuser.RegisterUserServer(server, u) return u.UserDatabase.InitOnce(context.Background(), users) diff --git a/pkg/rpcclient/msg.go b/pkg/rpcclient/msg.go index 6097109ae..8c08d0db4 100644 --- a/pkg/rpcclient/msg.go +++ b/pkg/rpcclient/msg.go @@ -161,10 +161,9 @@ func WithLocalSendMsg(sendMsg func(ctx context.Context, req *msg.SendMsgReq) (*m } } -func WithDiscov(discov discoveryregistry.SvcDiscoveryRegistry) NewNotificationSenderOptions { +func WithRpcClient(msgRpcClient *MessageRpcClient) NewNotificationSenderOptions { return func(s *NotificationSender) { - rpcClient := NewMessageRpcClient(discov) - s.sendMsg = rpcClient.SendMsg + s.sendMsg = msgRpcClient.SendMsg } } diff --git a/pkg/rpcclient/notification/conevrsation.go b/pkg/rpcclient/notification/conevrsation.go index e5ef6d130..cc30f46f3 100644 --- a/pkg/rpcclient/notification/conevrsation.go +++ b/pkg/rpcclient/notification/conevrsation.go @@ -4,7 +4,6 @@ import ( "context" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" - "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient" ) @@ -13,8 +12,8 @@ type ConversationNotificationSender struct { *rpcclient.NotificationSender } -func NewConversationNotificationSender(client discoveryregistry.SvcDiscoveryRegistry) *ConversationNotificationSender { - return &ConversationNotificationSender{rpcclient.NewNotificationSender(rpcclient.WithDiscov(client))} +func NewConversationNotificationSender(msgRpcClient *rpcclient.MessageRpcClient) *ConversationNotificationSender { + return &ConversationNotificationSender{rpcclient.NewNotificationSender(rpcclient.WithRpcClient(msgRpcClient))} } // SetPrivate调用 diff --git a/pkg/rpcclient/notification/friend.go b/pkg/rpcclient/notification/friend.go index 803c748c0..18f72203f 100644 --- a/pkg/rpcclient/notification/friend.go +++ b/pkg/rpcclient/notification/friend.go @@ -2,13 +2,13 @@ package notification import ( "context" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/convert" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller" relationTb "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation" - "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" pbFriend "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/friend" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient" @@ -62,9 +62,9 @@ func WithRpcFunc(fn func(ctx context.Context, userIDs []string) ([]*sdkws.UserIn } } -func NewFriendNotificationSender(client discoveryregistry.SvcDiscoveryRegistry, opts ...friendNotificationSenderOptions) *FriendNotificationSender { +func NewFriendNotificationSender(msgRpcClient *rpcclient.MessageRpcClient, opts ...friendNotificationSenderOptions) *FriendNotificationSender { f := &FriendNotificationSender{ - NotificationSender: rpcclient.NewNotificationSender(rpcclient.WithDiscov(client)), + NotificationSender: rpcclient.NewNotificationSender(rpcclient.WithRpcClient(msgRpcClient)), } for _, opt := range opts { opt(f) diff --git a/pkg/rpcclient/notification/group.go b/pkg/rpcclient/notification/group.go index f00f2078b..5175f3740 100644 --- a/pkg/rpcclient/notification/group.go +++ b/pkg/rpcclient/notification/group.go @@ -9,7 +9,6 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext" - "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/errs" pbGroup "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" @@ -17,9 +16,9 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/utils" ) -func NewGroupNotificationSender(db controller.GroupDatabase, sdr discoveryregistry.SvcDiscoveryRegistry, fn func(ctx context.Context, userIDs []string) ([]CommonUser, error)) *GroupNotificationSender { +func NewGroupNotificationSender(db controller.GroupDatabase, msgRpcClient *rpcclient.MessageRpcClient, fn func(ctx context.Context, userIDs []string) ([]CommonUser, error)) *GroupNotificationSender { return &GroupNotificationSender{ - NotificationSender: rpcclient.NewNotificationSender(rpcclient.WithDiscov(sdr)), + NotificationSender: rpcclient.NewNotificationSender(rpcclient.WithRpcClient(msgRpcClient)), getUsersInfo: fn, db: db, } From 8c0503c145c6b6126f65fe5680c62808edaf2415 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 30 Jun 2023 15:54:43 +0800 Subject: [PATCH 2/3] remove log --- pkg/discoveryregistry/zookeeper/resolver.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/discoveryregistry/zookeeper/resolver.go b/pkg/discoveryregistry/zookeeper/resolver.go index c973d67a0..ee2a449cb 100644 --- a/pkg/discoveryregistry/zookeeper/resolver.go +++ b/pkg/discoveryregistry/zookeeper/resolver.go @@ -2,7 +2,6 @@ package zookeeper import ( "context" - "fmt" "strings" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" @@ -20,7 +19,6 @@ type Resolver struct { func (r *Resolver) ResolveNowZK(o resolver.ResolveNowOptions) { log.ZDebug(context.Background(), "start resolve now", "target", r.target, "cc", r.cc.UpdateState, "serviceName", strings.TrimLeft(r.target.URL.Path, "/")) - fmt.Println("start resolve now", "target", r.target, "cc", r.cc.UpdateState, "serviceName", strings.TrimLeft(r.target.URL.Path, "/")) newConns, err := r.getConnsRemote(strings.TrimLeft(r.target.URL.Path, "/")) if err != nil { log.ZError(context.Background(), "resolve now error", err, "target", r.target) @@ -40,7 +38,7 @@ func (s *Resolver) Close() {} func (s *ZkClient) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { s.logger.Printf("build resolver: %+v, cc: %+v", target, cc.UpdateState) - log.ZDebug(context.Background(), "build resolver start", "target", target, "cc", cc.UpdateState) + // log.ZDebug(context.Background(), "build resolver start", "target", target, "cc", cc.UpdateState) r := &Resolver{} r.target = target r.cc = cc @@ -51,7 +49,7 @@ func (s *ZkClient) Build(target resolver.Target, cc resolver.ClientConn, opts re serviceName := strings.TrimLeft(target.URL.Path, "/") s.resolvers[serviceName] = r s.logger.Printf("build resolver finished: %+v, cc: %+v, key: %s", target, cc.UpdateState, serviceName) - log.ZDebug(context.Background(), "build resolver finished", "target", target, "cc", cc.UpdateState, "serviceName", serviceName) + // log.ZDebug(context.Background(), "build resolver finished", "target", target, "cc", cc.UpdateState, "serviceName", serviceName) return r, nil } From 1c94d2c58b92f798b3711aa1be22167ff334b2f4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 30 Jun 2023 16:05:01 +0800 Subject: [PATCH 3/3] refactor: database rename --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index e5e159cc6..b450b2193 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -12,7 +12,7 @@ mysql: address: [ 127.0.0.1:13306 ] #目前仅支持单机 username: root #用户名 password: openIM123 #密码 - database: openIM_v2 #不建议修改 + database: openIM_v3 #不建议修改 maxOpenConn: 1000 #最大连接数 maxIdleConn: 100 #最大空闲连接数 maxLifeTime: 60 #连接可以重复使用的最长时间(秒) @@ -22,7 +22,7 @@ mysql: mongo: uri: #不为空则直接使用该值 address: [ 127.0.0.1:37017 ] #单机时为mongo地址,使用分片集群时,为mongos地址 - database: openIM #mongo db 默认即可 + database: openIM_v3 #mongo db 默认即可 username: root #用户名 password: openIM123 #密码 maxPoolSize: 100