etcd

package
v3.1.15 Latest Latest
Warning

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

Go to latest
Published: May 13, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const Scheme = "etcd"

Variables

This section is empty.

Functions

func Dial

func Dial(serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error)

Dial 创建基于 etcd 服务发现的 gRPC 客户端连接

func InitEtcdResolver

func InitEtcdResolver(discovery *Discovery)

Types

type Discovery

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

func NewDiscovery

func NewDiscovery(opts *Options) (*Discovery, error)

func (*Discovery) Close

func (d *Discovery) Close() error

func (*Discovery) GetServices

func (d *Discovery) GetServices(serviceName string) []*ServiceInfo

func (*Discovery) Subscribe

func (d *Discovery) Subscribe(serviceName string, fn func()) func()

func (*Discovery) Watch

func (d *Discovery) Watch(serviceName string) error

type EtcdResolverBuilder

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

func (*EtcdResolverBuilder) Build

func (*EtcdResolverBuilder) Scheme

func (b *EtcdResolverBuilder) Scheme() string

type Options

type Options struct {
	// etcd 客户端配置
	Endpoints   []string
	Username    string
	Password    string
	DialTimeout time.Duration

	// 服务注册配置
	ServiceName string
	ServiceAddr string
	ServiceID   string
	TTL         int64 // 租约时间(秒)
	Version     string

	// 元数据
	Metadata map[string]string
}

func DefaultOptions

func DefaultOptions() *Options

func (*Options) ServiceKey

func (o *Options) ServiceKey() string

生成 etcd key

func (*Options) ServicePrefix

func (o *Options) ServicePrefix() string

服务前缀(用于发现)

type Registry

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

func NewRegistry

func NewRegistry(opts *Options) (*Registry, error)

func (*Registry) Deregister

func (r *Registry) Deregister() error

Deregister 注销服务

func (*Registry) Register

func (r *Registry) Register() error

type ServiceInfo

type ServiceInfo struct {
	Name     string            `json:"name"`
	Addr     string            `json:"addr"`
	ID       string            `json:"id"`
	Version  string            `json:"version"`
	Metadata map[string]string `json:"metadata"`
	TTL      int64             `json:"ttl"`
}

ServiceInfo 服务信息

Jump to

Keyboard shortcuts

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