diff --git a/registry/noop/noop.go b/registry/noop/noop.go new file mode 100644 index 00000000..7bed0c0a --- /dev/null +++ b/registry/noop/noop.go @@ -0,0 +1,41 @@ +// Package noop is a registry which does nothing +package noop + +import ( + "errors" + + "github.com/micro/go-micro/v3/registry" +) + +type noopRegistry struct{} + +func (n *noopRegistry) Init(o ...registry.Option) error { + return nil +} + +func (n *noopRegistry) Options() registry.Options { + return registry.Options{} +} + +func (n *noopRegistry) Register(*registry.Service, ...registry.RegisterOption) error { + return nil +} + +func (n *noopRegistry) Deregister(*registry.Service, ...registry.DeregisterOption) error { + return nil +} + +func (n *noopRegistry) GetService(s string, o ...registry.GetOption) ([]*registry.Service, error) { + return []*registry.Service{}, nil +} + +func (n *noopRegistry) ListServices(...registry.ListOption) ([]*registry.Service, error) { + return []*registry.Service{}, nil +} +func (n *noopRegistry) Watch(...registry.WatchOption) (registry.Watcher, error) { + return nil, errors.New("not implemented") +} + +func (n *noopRegistry) String() string { + return "noop" +} diff --git a/server/grpc/grpc.go b/server/grpc/grpc.go index 6dadbfdd..0ce2a48a 100644 --- a/server/grpc/grpc.go +++ b/server/grpc/grpc.go @@ -595,6 +595,11 @@ func (g *grpcServer) Register() error { config := g.opts g.RUnlock() + // only register if it exists or is not noop + if config.Registry == nil || config.Registry.String() == "noop" { + return nil + } + regFunc := func(service *registry.Service) error { var regErr error @@ -779,6 +784,11 @@ func (g *grpcServer) Deregister() error { config := g.opts g.RUnlock() + // only register if it exists or is not noop + if config.Registry == nil || config.Registry.String() == "noop" { + return nil + } + // check the advertise address first // if it exists then use it, otherwise // use the address diff --git a/server/mucp/rpc_server.go b/server/mucp/rpc_server.go index bea912ad..b885ce02 100644 --- a/server/mucp/rpc_server.go +++ b/server/mucp/rpc_server.go @@ -522,6 +522,11 @@ func (s *rpcServer) Register() error { config := s.Options() s.RUnlock() + // only register if it exists or is not noop + if config.Registry == nil || config.Registry.String() == "noop" { + return nil + } + regFunc := func(service *registry.Service) error { // create registry options rOpts := []registry.RegisterOption{ @@ -730,6 +735,11 @@ func (s *rpcServer) Deregister() error { config := s.Options() s.RUnlock() + // only register if it exists or is not noop + if config.Registry == nil || config.Registry.String() == "noop" { + return nil + } + // check the advertise address first // if it exists then use it, otherwise // use the address