SDK
针对不同的版本,etcd提供了两个版本的sdk, 下面针对不同版本,来使用熟悉下。
v2
Install
使用
异常处理 etcd client 可能会返回以下几种类型的异常
context error
每一个API调用的第一个参数都是context。 context可以被取消或者是检测其期限。如果context被取消了或者到了生命周期,
将会返回context异常。
cluster error
每一次API调用都会挨个发送请求到etcd集群,直到获得响应。 如果一个发送到etcd集群中某个节点的请求失败了,异常将会添加到异常列表里面, 如果整个集群中所有节点都失败了,则会返回一个集群异常。
response error
如果从集群中获得的响应是无效的, 会返回响应异常。
注意事项
在节点正常工作的情况下,etcd/client优先会使用同一个集群节点。他会保存socket连接,提高客户端跟服务器之间的效率。 这个并不会影响数据的一致性, 因为复制到每个有效节点中的数据已经是一致的。
etcd/client 采用了round-robin的负载均衡策略来选择可用的节点进行交互。 例如,如果其中一个节点失效了,会转发到其他的节点。
默认情况下etcd/client不能处理服务器端的SIGSTOPed, tcp keepalive机制在这种情况下是无用的,因为操作系统仍旧会发送tcp包。我们也有计划去提高这方面的功能,但就目前来说,优先级并不高,所以没必要刻意去关注。
etcd/client 不会检测成员健康状态。 如果成员从集群中分裂出来,etcd/client 会检索到过时的数据。故而,用户需要自己关注集群状态。
V3
etcd/clientv3 是一个官方的V3版本的Go语言etcd客户端。
安装
使用
异常处理 etcd/clientv3 会返回两种类型的异常:
context error
gRPC error
Last updated