etcdproxy

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 21, 2022 License: MIT Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Default = New()

Default 默认的etcd代理对象

View Source
var DefaultOptions = Options{
	QueryTimeout: time.Duration(50) * time.Millisecond,
	Config:       &clientv3.Config{},
}
View Source
var ErrProxyAllreadySettedClient = errors.New("代理不能重复设置客户端对象")

ErrProxyAllreadySettedClient 代理已经设置过redis客户端对象

View Source
var ErrProxyNotYetSettedClient = errors.New("代理还未设置客户端对象")

ErrProxyNotYetSettedClient 代理还未设置客户端对象

View Source
var Logger *log.Log

Functions

func UseEtcdOpts

func UseEtcdOpts(opts ...optparams.Option[clientv3.Config]) optparams.Option[Options]

UseEtcdOpts 设置etcd的连接项

func WithAutoSyncInterval

func WithAutoSyncInterval(iterval int) optparams.Option[clientv3.Config]

WithAutoSyncInterval 设置etcd连接的最大自动同步周期 @params iterval int 最大自动同步周期,单位ms

func WithDialKeepAliveTime

func WithDialKeepAliveTime(alivetime int) optparams.Option[clientv3.Config]

WithDialKeepAliveTime 设置etcd连接的拨号存活时长 @params alivetime int 拨号存活时长,单位ms

func WithDialKeepAliveTimeout

func WithDialKeepAliveTimeout(timeout int) optparams.Option[clientv3.Config]

WithDialKeepAliveTimeout 设置etcd连接的拨号存活超时时长 @params timeout int 拨号存活超时时长,单位ms

func WithDialTimeout

func WithDialTimeout(timeout int) optparams.Option[clientv3.Config]

WithDialTimeout 设置etcd连接的拨号超时时间 @params timeout int 拨号超时时间,单位ms

func WithEtcdConfig

func WithEtcdConfig(conf *clientv3.Config) optparams.Option[Options]

WithEtcdConnConfig 设置etcd的连接项 @params conf *clientv3.Config etcd的连接配置

func WithMaxCallRecvMsgSize

func WithMaxCallRecvMsgSize(size int) optparams.Option[clientv3.Config]

WithMaxCallRecvMsgSize 设置etcd连接的最大接收消息大小 @params size int 最大接收消息大小,单位bytes

func WithMaxCallSendMsgSize

func WithMaxCallSendMsgSize(size int) optparams.Option[clientv3.Config]

WithMaxCallSendMsgSize 设置etcd连接的最大发送消息大小 @params size int 最大发送消息大小,单位bytes

func WithParallelCallback

func WithParallelCallback() optparams.Option[Options]

WithParallelCallback 设置callback并行执行

func WithPassword

func WithPassword(pwd string) optparams.Option[clientv3.Config]

WithPassword 设置etcd连接的密码 @params pwd string 密码

func WithPermitWithoutStream

func WithPermitWithoutStream() optparams.Option[clientv3.Config]

WithPermitWithoutStream 设置etcd连接允许没有流

func WithQueryTimeout

func WithQueryTimeout(timeout int) optparams.Option[Options]

WithQueryTimeout 设置最大过期时间,单位ms @params timeout int 请求etcd的最大超时,单位ms

func WithRejectOldCluster

func WithRejectOldCluster() optparams.Option[clientv3.Config]

WithRejectOldCluster 设置etcd连接拒绝旧集群

func WithUsername

func WithUsername(username string) optparams.Option[clientv3.Config]

WithUsername 设置etcd连接的用户名 @params username string 用户名

Types

type Callback

type Callback func(cli *clientv3.Client) error

Callback redis操作的回调函数

type EtcdProxy

type EtcdProxy struct {
	*clientv3.Client
	Opt Options
	// contains filtered or unexported fields
}

EtcdProxyredis客户端的代理

func New

func New() *EtcdProxy

New 创建一个新的数据库客户端代理

func (*EtcdProxy) Init

func (proxy *EtcdProxy) Init(endpoints string, opts ...optparams.Option[Options]) error

Init 从配置条件初始化代理对象 @params endpoints string 设置etcd连接的地址端点,以`,`分隔 @params opts ...optparams.Option[Options]

func (*EtcdProxy) IsOk

func (proxy *EtcdProxy) IsOk() bool

IsOk 检查代理是否已经可用

func (*EtcdProxy) NewCtx

func (proxy *EtcdProxy) NewCtx() (ctx context.Context, cancel context.CancelFunc)

NewCtx 根据注册的超时时间构造一个上下文

func (*EtcdProxy) Regist

func (proxy *EtcdProxy) Regist(cb ...Callback) error

Regist 注册回调函数,在init执行后执行回调函数 如果对象已经设置了被代理客户端则无法再注册回调函数 @params cb ...Callback 回调函数

func (*EtcdProxy) SetConnect

func (proxy *EtcdProxy) SetConnect(cli *clientv3.Client) error

SetConnect 设置连接的客户端 @params cli UniversalClient 满足redis.UniversalClient接口的对象的指针

type Options

type Options struct {
	*clientv3.Config
	QueryTimeout     time.Duration
	ParallelCallback bool
}

Option 设置key行为的选项 @attribute MaxTTL time.Duration 为0则不设置过期 @attribute AutoRefresh string 需要为crontab格式的字符串,否则不会自动定时刷新

Jump to

Keyboard shortcuts

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