github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/extend/etcd/README.md (about) 1 # etcd 2 3 对业内的etcd客户端进行配置化封装,用于简化获取 4 5 全部配置 6 ```yaml 7 base: 8 etcd: 9 # etcd的服务ip:port列表 10 endpoints: 11 - 10.10.10.10:2379 12 - 10.10.10.11:2379 13 # 用户 14 username: userxxx 15 # 密码 16 password: xxxxx 17 # 自动同步间隔:是用其最新成员更新端点的间隔;默认为0,即禁用自动同步;配置示例:1s、1000ms 18 auto-sync-interval: 5s 19 # 拨号超时:是指连接失败后的超时时间;配置示例:1s、1000ms 20 dial-timeout: 5s 21 # 拨号保持连接时间:是客户端ping服务器以查看传输是否连接的时间;配置示例:1s、1000ms 22 dial-keep-alive-time: 5s 23 # 拨号保持连接超时:是客户端等待响应保持连接探测的时间,如果在此时间内没有收到响应,则连接将被关闭;配置示例:1s、1000ms 24 dial-keep-alive-timeout: 5s 25 # 拨号重试策略: 默认为空:表示默认不重试;1、2、3...表示重试多少次;always:表示一直重试 26 dial-retry: 1 27 # 最大呼叫:发送MSG大小是客户端请求发送的字节限制;默认:(2MB)2 * 1024 * 1024 28 max-call-send-msg-size: 2 * 1024 * 1024 29 # 最大调用recv MSG大小是客户端响应接收限制;默认:math.MaxInt32 30 max-call-recv-msg-size: 10000000 31 # 当设置拒绝旧集群时,将拒绝在过时的集群上创建客户端 32 reject-old-cluster: false 33 # 设置允许无流时将允许客户端发送keepalive ping到服务器没有任何活动流rp cs 34 permit-without-stream: false 35 ``` 36 提供etcd的client获取api `NewEtcdClient` 37 ```go 38 func Test1(t *testing.T) { 39 etcdClient, _ := etcd.NewEtcdClient() 40 41 ctx := context.Background() 42 etcdClient.Put(ctx, "gobase.k1", "testValue") 43 rsp, _ := etcdClient.Get(ctx, "gobase.k1") 44 } 45 ``` 46 47 ### 示例 48 配置示例 49 ```yaml 50 base: 51 etcd: 52 # 是否启用etcd 53 enable: true 54 # etcd的服务ip:port列表 55 endpoints: 56 - 10.10.10.10:2379 57 # 用户 58 username: xxx 59 # 密码 60 password: xxx 61 # 拨号超时:是指连接失败后的超时时间;配置示例:1s、1000ms 62 dial-timeout: 5s 63 ``` 64 代码示例 65 ```go 66 func Test1(t *testing.T) { 67 etcdClient, _ := etcd.NewEtcdClient() 68 69 ctx := context.Background() 70 etcdClient.Put(ctx, "gobase.k1", "testValue") 71 rsp, _ := etcdClient.Get(ctx, "gobase.k1") 72 } 73 ```