discover

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterFactory

func RegisterFactory(factory RegistryFactory) error

RegisterFactory 注册工厂

func RegisterFactoryFunc

func RegisterFactoryFunc(scheme string, fn RegistryFactoryFunc) error

RegisterFactoryFunc 注册工厂函数

Types

type Discovery

type Discovery interface {
	Find(ctx context.Context, serviceName string) ([]ServiceInfo, error)
	Watch(ctx context.Context, serviceName string, n Notify) error
}

type Notify

type Notify func([]ServiceInfo)

type Registry

type Registry interface {
	Register(context.Context, Service) (context.CancelFunc, error)
}

func NewNoop

func NewNoop() Registry

type RegistryDiscovery

type RegistryDiscovery interface {
	Registry
	Discovery
}

RegistryDiscovery 同时具备服务注册和发现能力,大多数注册中心均实现此接口。

type RegistryFactory

type RegistryFactory interface {
	// Scheme 返回支持的协议方案
	Scheme() string

	// CreateFromURL 从URL创建注册中心实例
	CreateFromURL(targetURL *url.URL) (RegistryDiscovery, error)
}

RegistryFactory 注册中心工厂接口

type RegistryFactoryFunc

type RegistryFactoryFunc func(targetURL *url.URL) (RegistryDiscovery, error)

RegistryFactoryFunc 工厂函数类型

type RegistryManager

type RegistryManager struct {
	// contains filtered or unexported fields
}

RegistryManager 注册中心管理器

func GetManager

func GetManager() *RegistryManager

GetManager 获取全局管理器实例

func (*RegistryManager) ClearFactories

func (m *RegistryManager) ClearFactories()

ClearFactories 清空所有工厂

func (*RegistryManager) CreateRegistry

func (m *RegistryManager) CreateRegistry(target string) (RegistryDiscovery, error)

CreateRegistry 创建注册中心实例

func (*RegistryManager) CreateRegistryFromURL

func (m *RegistryManager) CreateRegistryFromURL(targetURL *url.URL) (RegistryDiscovery, error)

CreateRegistryFromURL 从URL创建注册中心实例

func (*RegistryManager) GetAvailableSchemes

func (m *RegistryManager) GetAvailableSchemes() []string

GetAvailableSchemes 获取所有可用的协议方案

func (*RegistryManager) IsSchemeSupported

func (m *RegistryManager) IsSchemeSupported(scheme string) bool

IsSchemeSupported 检查是否支持某个协议方案

func (*RegistryManager) RegisterFactory

func (m *RegistryManager) RegisterFactory(factory RegistryFactory) error

RegisterFactory 注册工厂,重复注册同一 scheme 会返回 error

func (*RegistryManager) RegisterFactoryFunc

func (m *RegistryManager) RegisterFactoryFunc(scheme string, fn RegistryFactoryFunc) error

RegisterFactoryFunc 注册工厂函数

func (*RegistryManager) UnregisterFactory

func (m *RegistryManager) UnregisterFactory(scheme string)

UnregisterFactory 注销工厂

type Service

type Service interface {
	ID() string
	Name() string
	Kind() string
	Addr() string
	Metadata() map[string]string
}

type ServiceInfo

type ServiceInfo struct {
	ID       string            `json:"id"`
	Kind     string            `json:"kind"`
	Name     string            `json:"name"`
	Addr     string            `json:"addr"`
	Metadata map[string]string `json:"metadata"`
}

func (*ServiceInfo) Marshal

func (s *ServiceInfo) Marshal() (string, error)

func (*ServiceInfo) Unmarshal

func (s *ServiceInfo) Unmarshal(b []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL