Etcd源码分析之clientv3源码分析(1)

本文介绍了Etcd作为分布式一致性KV存储系统的特性,并着重分析了clientv3版本的源码,特别是客户端创建过程。首先展示了创建Etcd clientv3的示例代码,接着详细解析了创建clientv3结构体的源码,包括Config结构体的构建、校验以及如何启动endpoint同步。最后,提到了yaml配置文件的支持,但未展开讨论。
摘要由CSDN通过智能技术生成

Etcd源码分析之clientv3源码分析(1)

etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,使用Go语言实现。

目前在工作中接触到这个软件,顺便对其部门源码进行了一些分析,现整理总结博客中。

Etcd 源码主要包括etcd server端和etcd client端的源码,client端的源码又有v2版本和v3版本之分。因为目前工作中接触的主要是clientv3的源码,所以先整理更新clientv3的源码,后面再补上clientv2和etcd server的源码分析。

创建客户端样例程序

在分析etcd clientv3的源码之前,首先通过一个简单的样例,看看如何使用在自己的代码中创建一个clientv3的客户端:

func ExampleKV_put() {
    cli, err := clientv3.New(clientv3.Config{
        Endpoints:   endpoints,
        DialTimeout: dialTimeout,
    })
    if err != nil {
        log.Fatal(err)
    }
    defer cli.Close()

    ctx, cancel := context.WithTimeout(context.Background(), requestTimeout)
    _, err = cli.Put(ctx, "sample_key", "sample_value")
    cancel()
    if err != nil {
        log.Fatal(err)
    }
}

这段代码来源于etcd-3.3.1/clientv3/example_kv_test.go
其实现的主要功能是创建一个clientv3的结构体cli, 然后用该cli,执行一个PUT操作,往etcd server中写入"sample_key", "sample_value"这对KV值。

创建clientv3结构体源码

这里我们首先分析创建clientv3结构体的源码&#x

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值