返回介绍

学习 - 理解API

发布于 2020-08-31 21:59:42 字数 2497 浏览 1160 评论 0 收藏 0

注: 内容翻译自 etcd3 API

注意: 这个文档还没有完成!

注:原文如此,的确是还没有完成 :)

Response header

从etcd API返回的所有应答都附带有 response header。这个response header包含应答的元数据。

  1. message ResponseHeader {
  2. uint64 cluster_id = 1;
  3. uint64 member_id = 2;
  4. int64 revision = 3;
  5. uint64 raft_term = 4;
  6. }
  • Cluster_ID - 生成应答的集群的ID
  • Member_ID - 生成应答的成员的ID
  • Revision - 当应答生成时键值存储的修订版本
  • Raft_Term - 当应答生成时成员的 Raft term

应用可以读取 Cluster_ID (Member_ID) 字段来确保它正在和预期的集群(成员)通讯。

应用可以使用 Revision/修订版本 来获知键值存储最新的修订版本。当应用指定一个历史修订版本来实现 time travel query 并希望知道请求时刻最新的修订版本时有用。

应用可以使用 Raft_Term 来检测集群何时完成了新的leader选举。

键值 API

键值API用于操作etcd中的键值对存储。键值API被定义为 gRPC服务。在 protobuf 格式中键值对被定义为结构化的数据。

键值对

键值对是键值API可以操作的最小单元。每个键值对有一些字段:

  1. message KeyValue {
  2. bytes key = 1;
  3. int64 create_revision = 2;
  4. int64 mod_revision = 3;
  5. int64 version = 4;
  6. bytes value = 5;
  7. int64 lease = 6;
  8. }
  • Key - 字节数组形式的key。key不容许空。
  • Value - 字节数组形式的value
  • Version - key的版本。删除将重置版本为0而key的任何修改将增加它的版本。
  • Create_Revision - key最后一次创建的修订版本。
  • Mod_Revision - key最后一次修改的修订版本。
  • Lease - 附加到key的租约的ID。如果lease为0,则表示没有租约附加到key。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文