mirror of
https://github.com/go-micro/go-micro.git
synced 2024-11-24 08:02:32 +02:00
de34f259ba
fixing test failed issue change back error type change registry.ErrNotFound back to selector.ErrNotFound change back error type change registry.ErrNotFound back to selector.ErrNotFound remove the single node tunnel test Fix read yaml config from memory package main import ( "fmt" "github.com/micro/go-micro/config" "github.com/micro/go-micro/config/source/memory" ) var configData = []byte(` --- a: 1234 `) func main() { memorySource := memory.NewSource( memory.WithYAML(configData), ) // Create new config conf := config.NewConfig() // Load file source conf.Load(memorySource) fmt.Println(string(conf.Bytes())) }
65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
// Package registry is an interface for service discovery
|
|
package registry
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// The registry provides an interface for service discovery
|
|
// and an abstraction over varying implementations
|
|
// {consul, etcd, zookeeper, ...}
|
|
type Registry interface {
|
|
Init(...Option) error
|
|
Options() Options
|
|
Register(*Service, ...RegisterOption) error
|
|
Deregister(*Service) error
|
|
GetService(string) ([]*Service, error)
|
|
ListServices() ([]*Service, error)
|
|
Watch(...WatchOption) (Watcher, error)
|
|
String() string
|
|
}
|
|
|
|
type Option func(*Options)
|
|
|
|
type RegisterOption func(*RegisterOptions)
|
|
|
|
type WatchOption func(*WatchOptions)
|
|
|
|
var (
|
|
DefaultRegistry = NewRegistry()
|
|
|
|
// Not found error when GetService is called
|
|
ErrNotFound = errors.New("service not found")
|
|
// Watcher stopped error when watcher is stopped
|
|
ErrWatcherStopped = errors.New("watcher stopped")
|
|
)
|
|
|
|
// Register a service node. Additionally supply options such as TTL.
|
|
func Register(s *Service, opts ...RegisterOption) error {
|
|
return DefaultRegistry.Register(s, opts...)
|
|
}
|
|
|
|
// Deregister a service node
|
|
func Deregister(s *Service) error {
|
|
return DefaultRegistry.Deregister(s)
|
|
}
|
|
|
|
// Retrieve a service. A slice is returned since we separate Name/Version.
|
|
func GetService(name string) ([]*Service, error) {
|
|
return DefaultRegistry.GetService(name)
|
|
}
|
|
|
|
// List the services. Only returns service names
|
|
func ListServices() ([]*Service, error) {
|
|
return DefaultRegistry.ListServices()
|
|
}
|
|
|
|
// Watch returns a watcher which allows you to track updates to the registry.
|
|
func Watch(opts ...WatchOption) (Watcher, error) {
|
|
return DefaultRegistry.Watch(opts...)
|
|
}
|
|
|
|
func String() string {
|
|
return DefaultRegistry.String()
|
|
}
|