diff --git a/cmd/main.go b/cmd/main.go index 870c5dd40..75636ec1a 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -100,7 +100,7 @@ func (x *cmds) readConfig() error { } x.conf[getTypePath(field.Type())] = data } - val := config.Discovery{Enable: discovery.Standalone} + val := config.Discovery{Enable: config.Standalone} var buf bytes.Buffer if err := yaml.NewEncoder(&buf).Encode(&val); err != nil { return err diff --git a/internal/msgtransfer/init.go b/internal/msgtransfer/init.go index 96e6bbde0..85f208047 100644 --- a/internal/msgtransfer/init.go +++ b/internal/msgtransfer/init.go @@ -176,11 +176,10 @@ func (m *MsgTransfer) Start(index int, config *Config, client discovery.SvcDisco return listener, port, nil } - if config.MsgTransfer.Prometheus.AutoSetPorts && config.Discovery.Enable != conf.ETCD { - return errs.New("only etcd support autoSetPorts", "RegisterName", "api").Wrap() - } - - if config.MsgTransfer.Prometheus.Enable { + if config.Discovery.Enable != conf.Standalone && config.MsgTransfer.Prometheus.Enable { + if config.MsgTransfer.Prometheus.AutoSetPorts && config.Discovery.Enable != conf.ETCD { + return errs.New("only etcd support autoSetPorts", "RegisterName", "api").Wrap() + } var ( listener net.Listener prometheusPort int diff --git a/pkg/common/config/constant.go b/pkg/common/config/constant.go index f3fcc67ef..3a83faaa3 100644 --- a/pkg/common/config/constant.go +++ b/pkg/common/config/constant.go @@ -21,6 +21,7 @@ const ( DeploymentType = "DEPLOYMENT_TYPE" KUBERNETES = "kubernetes" ETCD = "etcd" + Standalone = "standalone" ) const ( diff --git a/pkg/common/discovery/discoveryregister.go b/pkg/common/discovery/discoveryregister.go index 1b64c3e78..97b5c4988 100644 --- a/pkg/common/discovery/discoveryregister.go +++ b/pkg/common/discovery/discoveryregister.go @@ -19,6 +19,7 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/tools/discovery" + "github.com/openimsdk/tools/discovery/standalone" "google.golang.org/grpc" "github.com/openimsdk/tools/discovery/kubernetes" @@ -38,6 +39,8 @@ func NewDiscoveryRegister(discovery *config.Discovery, runtimeEnv string, watchN } switch discovery.Enable { + case config.Standalone: + return standalone.GetSvcDiscoveryRegistry(), nil case config.ETCD: return etcd.NewSvcDiscoveryRegistry( discovery.Etcd.RootDirectory, diff --git a/pkg/common/startrpc/start.go b/pkg/common/startrpc/start.go index f41a41970..41e1edc1e 100644 --- a/pkg/common/startrpc/start.go +++ b/pkg/common/startrpc/start.go @@ -53,6 +53,14 @@ func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConf rpcFn func(ctx context.Context, config T, client discovery.Conn, server grpc.ServiceRegistrar) error, options ...grpc.ServerOption) error { + if notification != nil { + conf.InitNotification(notification) + } + + if discovery.Enable == conf.Standalone { + return nil + } + watchConfigNames = append(watchConfigNames, conf.LogConfigFileName) var ( rpcTcpAddr string @@ -61,10 +69,6 @@ func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConf prometheusPort int ) - if notification != nil { - conf.InitNotification(notification) - } - registerIP, err := network.GetRpcRegisterIP(registerIP) if err != nil { return err