registry

package
v0.39.8 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2020 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package registry 服务注册与发现

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNodeNotFound 服务节点未找到
	ErrNodeNotFound = errors.New("node not found")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	// Addrs 支持多个地址
	Addrs []string

	// DialTimeout 连接超时时间
	DialTimeout time.Duration

	// TLSConfig tls 配置
	TLSConfig *tls.Config

	// TTL 设置存活时间,超过这个时间会被移除,时间从注册开始计时
	TTL time.Duration

	// Interval 每隔一段时间就重新注册,用以保证不会因为超过 TTL 而被移除
	Interval time.Duration

	// ReadTimeout 读操作超时
	ReadTimeout time.Duration

	// WriteTimeout 写操作超时
	WriteTimeout time.Duration

	// Username 用户名
	Username string

	// Password 密码
	Password string
}

Config 关于服务的一些配置

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 默认地址

type Node

type Node struct {
	// ID 用于辨认同一个服务下的不同节点,需要唯一性
	ID      string `json:"id"`
	Address string `json:"address"`
	Port    int    `json:"port"`
}

Node 表示提供服务的一个节点信息

func (*Node) String

func (node *Node) String() string

String ..

type Option

type Option func(config *Config)

Option ..

func WithAddrs

func WithAddrs(addrs ...string) Option

WithAddrs 设置地址

func WithDialTimeout

func WithDialTimeout(timeout time.Duration) Option

WithDialTimeout 设置连接超时时间

func WithInterval

func WithInterval(interval time.Duration) Option

WithInterval 每隔一段时间就重新注册,用以保证不会因为超过 TTL 而被移除

func WithPassword

func WithPassword(password string) Option

WithPassword 设置密码

func WithReadTimeout

func WithReadTimeout(timeout time.Duration) Option

WithReadTimeout 设置读操作超时

func WithTLSConfig

func WithTLSConfig(tls *tls.Config) Option

WithTLSConfig 设置 tls 配置

func WithTTL

func WithTTL(ttl time.Duration) Option

WithTTL 置存活时间,超过这个时间会被移除,时间从注册开始计时

func WithUsername

func WithUsername(username string) Option

WithUsername 设置用户名

func WithWriteTimeout

func WithWriteTimeout(timeout time.Duration) Option

WithWriteTimeout 设置写操作超时

type Registry

type Registry interface {
	// Register 注册一个服务
	Register(service *Service) error

	// Deregister 注销一个服务
	Deregister(service *Service) error

	// Service 获取指定名称的服务列表
	Service(name string) (*Service, error)

	// Close 关闭
	Close()
}

Registry 服务器注册与发现接口

type Service

type Service struct {
	// Name 服务的名称
	Name string `json:"name"`

	// Nodes 该服务下的节点信息
	Nodes []*Node `json:"nodes"`
}

Service 表示一种服务

func (*Service) String

func (service *Service) String() string

String ..

Directories

Path Synopsis
Package etcdv3 ...
Package etcdv3 ...

Jump to

Keyboard shortcuts

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