From d9b973f44b88a561d711f52ab66f46c0a694e6bb Mon Sep 17 00:00:00 2001 From: dsx137 <70027572+dsx137@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:19:46 +0800 Subject: [PATCH 1/4] refactor(core): select discovery backend from configured type --- pkg/common/discovery/discoveryregister.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/pkg/common/discovery/discoveryregister.go b/pkg/common/discovery/discoveryregister.go index 29ed5929f..9470ba872 100644 --- a/pkg/common/discovery/discoveryregister.go +++ b/pkg/common/discovery/discoveryregister.go @@ -21,7 +21,7 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/tools/discovery" - "github.com/openimsdk/tools/discovery/inprocess" + "github.com/openimsdk/tools/discovery/standalone" "github.com/openimsdk/tools/utils/runtimeenv" "github.com/openimsdk/tools/discovery/kubernetes" @@ -33,17 +33,24 @@ import ( // NewDiscoveryRegister creates a new service discovery and registry client based on the provided environment type. func NewDiscoveryRegister(discovery *config.Discovery, watchNames []string) (discovery.SvcDiscoveryRegistry, error) { if config.Standalone() { - return inprocess.GetSvcDiscoveryRegistry(), nil + return standalone.GetSvcDiscoveryRegistry(), nil } - if runtimeenv.RuntimeEnvironment() == config.KUBERNETES { + + runtimeEnvironment := runtimeenv.RuntimeEnvironment() + discoveryType := discovery.Enable + if discoveryType == "" && runtimeEnvironment == config.KUBERNETES { + discoveryType = config.KUBERNETES + } + if discoveryType == config.KUBERNETES && runtimeEnvironment != config.KUBERNETES { + return nil, errs.New("unsupported discovery type", "type", discoveryType).Wrap() + } + switch discoveryType { + case config.KUBERNETES: return kubernetes.NewConnManager(discovery.Kubernetes.Namespace, nil, grpc.WithDefaultCallOptions( grpc.MaxCallSendMsgSize(1024*1024*20), ), ) - } - - switch discovery.Enable { case config.ETCD: return etcd.NewSvcDiscoveryRegistry( discovery.Etcd.RootDirectory, @@ -53,6 +60,6 @@ func NewDiscoveryRegister(discovery *config.Discovery, watchNames []string) (dis etcd.WithMaxCallSendMsgSize(20*1024*1024), etcd.WithUsernameAndPassword(discovery.Etcd.Username, discovery.Etcd.Password)) default: - return nil, errs.New("unsupported discovery type", "type", discovery.Enable).Wrap() + return nil, errs.New("unsupported discovery type", "type", discoveryType).Wrap() } } From 48a2e27d40590309d075d8778ec2aea3e366954f Mon Sep 17 00:00:00 2001 From: dsx137 <70027572+dsx137@users.noreply.github.com> Date: Tue, 21 Jul 2026 13:50:24 +0800 Subject: [PATCH 2/4] refactor(core): select discovery backend from configured type --- .gitignore | 5 ++++- pkg/common/discovery/discoveryregister.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 77cf855b7..1b5cf874d 100644 --- a/.gitignore +++ b/.gitignore @@ -387,4 +387,7 @@ Sessionx.vim # End of https://www.toptal.com/developers/gitignore/api/go,git,vim,tags,test,emacs,backup,jetbrains .idea -dist/ \ No newline at end of file +dist/ + +.omo +.sisyphus \ No newline at end of file diff --git a/pkg/common/discovery/discoveryregister.go b/pkg/common/discovery/discoveryregister.go index 9470ba872..f7b89dc91 100644 --- a/pkg/common/discovery/discoveryregister.go +++ b/pkg/common/discovery/discoveryregister.go @@ -46,7 +46,7 @@ func NewDiscoveryRegister(discovery *config.Discovery, watchNames []string) (dis } switch discoveryType { case config.KUBERNETES: - return kubernetes.NewConnManager(discovery.Kubernetes.Namespace, nil, + return kubernetes.NewConnManager(discovery.Kubernetes.Namespace, watchNames, grpc.WithDefaultCallOptions( grpc.MaxCallSendMsgSize(1024*1024*20), ), From 597ed734cf591c8643c53c482c84d09392725d21 Mon Sep 17 00:00:00 2001 From: dsx137 <70027572+dsx137@users.noreply.github.com> Date: Tue, 21 Jul 2026 15:07:12 +0800 Subject: [PATCH 3/4] refactor(core): select discovery backend from configured type --- pkg/common/discovery/discoveryregister.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/common/discovery/discoveryregister.go b/pkg/common/discovery/discoveryregister.go index f7b89dc91..551f41c73 100644 --- a/pkg/common/discovery/discoveryregister.go +++ b/pkg/common/discovery/discoveryregister.go @@ -46,10 +46,14 @@ func NewDiscoveryRegister(discovery *config.Discovery, watchNames []string) (dis } switch discoveryType { case config.KUBERNETES: + for i := range watchNames { + watchNames[i] = strings.Split(watchNames[i], ":")[0] + } return kubernetes.NewConnManager(discovery.Kubernetes.Namespace, watchNames, grpc.WithDefaultCallOptions( grpc.MaxCallSendMsgSize(1024*1024*20), ), + grpc.WithDefaultServiceConfig(`{"loadBalancingPolicy":"round_robin"}`), ) case config.ETCD: return etcd.NewSvcDiscoveryRegistry( From 65a4f0f46179dd69ec4ac270f0863d53bf821412 Mon Sep 17 00:00:00 2001 From: dsx137 <70027572+dsx137@users.noreply.github.com> Date: Tue, 21 Jul 2026 15:08:11 +0800 Subject: [PATCH 4/4] refactor(core): select discovery backend from configured type --- pkg/common/discovery/discoveryregister.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/discovery/discoveryregister.go b/pkg/common/discovery/discoveryregister.go index 551f41c73..3e053775b 100644 --- a/pkg/common/discovery/discoveryregister.go +++ b/pkg/common/discovery/discoveryregister.go @@ -15,6 +15,7 @@ package discovery import ( + "strings" "time" "google.golang.org/grpc"