跳到主要内容

Etcd

本章节将介绍Etcd组件如何使用。

简介

Etcd组件对是对go.etcd.io/etcd库的简单封装,允许开发者忽略连接细节并提供简单的监听关键功能。
当Go-Sail启动时,如果启用Etcd组件,它将自动初始化Etcd组件。之后开发者就可以直接通过sail关键字来调用它。

main.go
import (
"github.com/keepchen/go-sail/v3/sail"
)

func main() {
sail.GetEtcdInstance()
}

使用方法

监听Key

main.go
var fn = func(k, v []byte) {
fmt.Printf("key: %s changed: %s\n", string(k), string(v))
}

func main() {
watchChan := sail.GetEtcdInstance().Watch(ctx, key)
for watchResp := range watchChan {
for _, value := range watchResp.Events {
fn(value.Kv.Key, value.Kv.Value)
}
}
}

其他

更多原生调用方法请查看go.etcd.io/etcd/client/v3的官方文档。

进阶

新实例

在某些特定场景下,开发者可能需要单独创建一个新的Etcd实例,这个时候可以使用Go-Sail提供的创建新实例语法糖。

main.go
import (
"github.com/keepchen/go-sail/v3/lib/etcd"
"github.com/keepchen/go-sail/v3/sail"
)

func main() {
conf := etcd.Conf{....}
sail.NewEtcd(conf)
}
提示

新实例将不再被Go-Sail接管,因此,开发者需要自行管理其生命周期,例如连接的关闭或释放。