API 参考
此 API 参考文档是从命名的 .proto 文件自动生成的。
服务 Auth (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| AuthEnable | AuthEnableRequest | AuthEnableResponse | AuthEnable 启用认证功能。 |
| AuthDisable | AuthDisableRequest | AuthDisableResponse | AuthDisable 禁用认证功能。 |
| AuthStatus | AuthStatusRequest | AuthStatusResponse | AuthStatus 显示认证状态。 |
| Authenticate | AuthenticateRequest | AuthenticateResponse | Authenticate 处理认证请求。 |
| UserAdd | AuthUserAddRequest | AuthUserAddResponse | UserAdd 添加一个新用户。用户名不能为空。 |
| UserGet | AuthUserGetRequest | AuthUserGetResponse | UserGet 获取用户的详细信息。 |
| UserList | AuthUserListRequest | AuthUserListResponse | UserList 获取所有用户的列表。 |
| UserDelete | AuthUserDeleteRequest | AuthUserDeleteResponse | UserDelete 删除指定的用户。 |
| UserChangePassword | AuthUserChangePasswordRequest | AuthUserChangePasswordResponse | UserChangePassword 修改指定用户的密码。 |
| UserGrantRole | AuthUserGrantRoleRequest | AuthUserGrantRoleResponse | UserGrant 向指定用户授予一个角色。 |
| UserRevokeRole | AuthUserRevokeRoleRequest | AuthUserRevokeRoleResponse | UserRevokeRole 撤销指定用户的角色。 |
| RoleAdd | AuthRoleAddRequest | AuthRoleAddResponse | RoleAdd 添加一个新角色。角色名称不能为空。 |
| RoleGet | AuthRoleGetRequest | AuthRoleGetResponse | RoleGet 获取角色的详细信息。 |
| RoleList | AuthRoleListRequest | AuthRoleListResponse | RoleList 获取所有角色的列表。 |
| RoleDelete | AuthRoleDeleteRequest | AuthRoleDeleteResponse | RoleDelete 删除指定的角色。 |
| RoleGrantPermission | AuthRoleGrantPermissionRequest | AuthRoleGrantPermissionResponse | RoleGrantPermission 向指定角色授予对特定键或范围的权限。 |
| RoleRevokePermission | AuthRoleRevokePermissionRequest | AuthRoleRevokePermissionResponse | RoleRevokePermission 撤销指定角色对某个键或范围的权限。 |
service Cluster (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| MemberAdd | MemberAddRequest | MemberAddResponse | MemberAdd 将成员添加到集群中。 |
| MemberRemove | MemberRemoveRequest | MemberRemoveResponse | MemberRemove 从集群中移除一个现有成员。 |
| MemberUpdate | MemberUpdateRequest | MemberUpdateResponse | MemberUpdate 更新成员的配置。 |
| MemberList | MemberListRequest | MemberListResponse | MemberList 列出集群中的所有成员。 |
| MemberPromote | MemberPromoteRequest | MemberPromoteResponse | MemberPromote 将一个 raft 学习者(非投票成员)提升为 raft 投票成员。 |
服务 KV (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| 范围 | RangeRequest | RangeResponse | Range 从键值存储中获取指定范围内的键。 |
| 写入 | PutRequest | PutResponse | Put 将给定的键写入键值存储。一次 Put 请求会增加键值存储的版本号,并在事件历史中生成一个事件。 |
| DeleteRange | DeleteRangeRequest | DeleteRangeResponse | DeleteRange 从键值存储中删除指定范围内的键。一次删除请求会增加键值存储的版本号,并为每个被删除的键在事件历史中生成一个删除事件。 |
| Txn | TxnRequest | TxnResponse | Txn 在单个事务中处理多个请求。一个 Txn 请求会增加键值存储的版本号,并为每个完成的请求生成具有相同版本号的事件。不允许在一个 Txn 中多次修改同一个键。 |
| Compact | CompactionRequest | CompactionResponse | Compact 压缩 etcd 键值存储中的事件历史。应定期执行压缩操作,否则事件历史将无限增长。 |
服务 Lease (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| LeaseGrant | LeaseGrantRequest | LeaseGrantResponse | LeaseGrant 创建一个租约,如果服务器在指定的生存时间内未收到 keepAlive,则该租约将过期。所有绑定到该租约的键将在租约过期时被删除。每个过期的键都会在事件历史中生成一个删除事件。 |
| LeaseRevoke | LeaseRevokeRequest | LeaseRevokeResponse | LeaseRevoke 撤销一个租约。所有绑定到该租约的键将过期并被删除。 |
| LeaseKeepAlive | LeaseKeepAliveRequest | LeaseKeepAliveResponse | LeaseKeepAlive 通过在客户端与服务器之间流式传输保活请求和响应,来保持租约的有效性。 |
| LeaseTimeToLive | LeaseTimeToLiveRequest | LeaseTimeToLiveResponse | LeaseTimeToLive 获取租约信息。 |
| LeaseLeases | LeaseLeasesRequest | LeaseLeasesResponse | LeaseLeases 列出所有现有的租约。 |
服务 Maintenance (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| 告警 | AlarmRequest | AlarmResponse | Alarm 用于激活、停用和查询有关集群健康状态的警报。 |
| Status | StatusRequest | StatusResponse | Status 获取成员的状态。 |
| Defragment | DefragmentRequest | DefragmentResponse | Defragment 对成员的后端数据库进行碎片整理,以回收存储空间。 |
| Hash | HashRequest | HashResponse | Hash 计算整个后端键空间的哈希值,包括键、租约以及其他存储中的桶。此功能**仅用于测试**!请勿在生产环境中依赖此操作,特别是在存在持续事务的情况下,因为 Hash 操作不持有 MVCC 锁。对于“key”桶的一致性检查,请使用“HashKV”API。 |
| HashKV | HashKVRequest | HashKVResponse | HashKV 计算到指定修订版本为止所有 MVCC 键的哈希值。它仅遍历后端存储中的“key”桶。 |
| 快照 | SnapshotRequest | SnapshotResponse | Snapshot 通过流将集群成员的整个后端快照发送给客户端。 |
| MoveLeader | MoveLeaderRequest | MoveLeaderResponse | MoveLeader 请求当前领导者节点将其领导权转移给指定的接收者。 |
| Downgrade | DowngradeRequest | DowngradeResponse | Downgrade 请求对集群版本进行降级、验证可行性或取消降级操作。自 etcd 3.5 起支持。 |
service Watch (api/etcdserverpb/rpc.proto)
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| Watch | WatchRequest | WatchResponse | Watch 监听正在发生或已经发生的事件。输入和输出均为流:输入流用于创建和取消监听器,输出流用于发送事件。一个 Watch RPC 可以同时监听多个键范围,一次性流式传输多个监听器的事件。可以从最近一次压缩版本开始监听完整的事件历史。 |
message AlarmMember (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| memberID | memberID 是与触发警报关联的成员的 ID。 | uint64 |
| alarm | alarm 是已触发的警报类型。 | AlarmType |
message AlarmRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| action | action 是要发出的告警请求类型。该操作可以获取告警状态、激活告警,或停用已触发的告警。 | AlarmAction |
| memberID | memberID 是与告警相关联的成员的 ID。如果 memberID 为 0,则该告警请求适用于所有成员。 | uint64 |
| alarm | alarm 是本次请求所考虑的告警类型。 | AlarmType |
消息 AlarmResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| alarms | alarms 是与该告警请求相关联的告警列表。 | (切片类型) AlarmMember |
消息 AuthDisableRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 AuthDisableResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthEnableRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 AuthEnableResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthRoleAddRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | name 是要添加到认证系统中的角色名称。 | string |
消息 AuthRoleAddResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthRoleDeleteRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| role | | string |
消息 AuthRoleDeleteResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthRoleGetRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| role | | string |
消息 AuthRoleGetResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | ResponseHeader |
| perm | | (切片类型) authpb.Permission |
消息 AuthRoleGrantPermissionRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | name 是将被授予权限的角色的名称。 | string |
| perm | perm 是要授予该角色的权限。 | authpb.Permission |
消息 AuthRoleGrantPermissionResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthRoleListRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 AuthRoleListResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 角色 | | 字符串(切片) |
消息 AuthRoleRevokePermissionRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| role | | string |
| 键 | | 字节 |
| range_end | | 字节 |
消息 AuthRoleRevokePermissionResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthStatusRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 AuthStatusResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| enabled | | 布尔值 |
| authRevision | authRevision 是当前 auth 存储的版本号 | uint64 |
消息 AuthUserAddRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | | string |
| 密码 | | string |
| 选项 | | authpb.UserAddOptions |
| hashedPassword | | string |
消息 AuthUserAddResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthUserChangePasswordRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | name 是正在更改密码的用户的名称。 | string |
| 密码 | password 是用户的新密码。注意:此字段将在 API 层被移除。 | string |
| hashedPassword | hashedPassword 是用户的新密码。注意:此字段将在 API 层初始化。 | string |
消息 AuthUserChangePasswordResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthUserDeleteRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | name 是要删除的用户的名称。 | string |
消息 AuthUserDeleteResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthUserGetRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | | string |
消息 AuthUserGetResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 角色 | | 字符串(切片) |
消息 AuthUserGrantRoleRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 用户 | user 是应被授予指定角色的用户的名称。 | string |
| role | role 是要授予该用户的角色的名称。 | string |
消息 AuthUserGrantRoleResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthUserListRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 AuthUserListResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 用户列表 | | 字符串(切片) |
消息 AuthUserRevokeRoleRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | | string |
| role | | string |
消息 AuthUserRevokeRoleResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 AuthenticateRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| name | | string |
| 密码 | | string |
消息 AuthenticateResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 令牌 | token 是一个已授权的令牌,可在后续的 RPC 调用中使用。 | string |
消息 CompactionRequest (api/etcdserverpb/rpc.proto)
CompactionRequest 将键值存储压缩到指定版本。所有修订版本低于压缩版本的过期键都将被删除。
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 版本号 | revision 是用于压缩操作的键值存储的版本号。 | int64 |
| physical | 设置 physical 后,RPC 将等待直到压缩操作实际应用到本地数据库,从而确保被压缩的条目完全从后端数据库中移除。 | 布尔值 |
消息 CompactionResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 Compare (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 结果 | result 是本次比较的逻辑比较操作。 | CompareResult |
| 目标 | target 是用于比较操作的键值字段。 | CompareTarget |
| 键 | key 是比较操作中的主体键。 | 字节 |
| target_union | | oneof |
| version | version 是给定键的版本。 | int64 |
| create_revision | create_revision 是给定键的创建时的修订版本。 | int64 |
| mod_revision | mod_revision 是给定键最后一次修改时的修订版本。 | int64 |
| value | value 是给定键的值,以字节为单位。 | 字节 |
| 租约 | lease 是给定键的租约 ID。 | int64 |
| range_end | range_end 将给定目标与范围 [key, range_end) 内的所有键进行比较。有关键范围的更多详细信息,请参见 RangeRequest。 | 字节 |
消息 DefragmentRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 DefragmentResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 DeleteRangeRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 键 | key 是要删除范围内的第一个键。 | 字节 |
| range_end | range_end 是要删除范围中最后一个键之后的键,范围为 [key, range_end)。如果未提供 range_end,则该范围仅包含 key 参数。如果 range_end 比给定的 key 大一位,则该范围包含具有该前缀(即给定 key)的所有键。如果 range_end 为 ‘\0’,则该范围包含所有大于或等于 key 参数的键。 | 字节 |
| prev_kv | 如果设置了 prev_kv,etcd 会在删除之前获取之前的键值对。这些先前的键值对将作为删除响应的一部分返回。 | 布尔值 |
消息 DeleteRangeResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| deleted | deleted 是删除范围请求所删除的键的数量。 | int64 |
| prev_kvs | 如果在请求中设置了 prev_kv,则会返回之前的键值对。 | (切片类型) mvccpb.KeyValue |
消息 DowngradeInfo (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| enabled | enabled 表示集群是否允许降级。 | 布尔值 |
| targetVersion | targetVersion 是目标降级版本。 | string |
消息 DowngradeRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| action | action 是要发起的降级请求类型。该操作可以用于 VALIDATE(验证)目标版本、DOWNGRADE(降级)集群版本,或 CANCEL(取消)当前正在进行的降级任务。 | DowngradeAction |
| version | version 是要降级到的目标版本。 | string |
消息 DowngradeResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| version | version 是当前集群版本。 | string |
消息 DowngradeVersionTestRequest (api/etcdserverpb/rpc.proto)
DowngradeVersionTestRequest 仅用于测试。此请求中的版本将被读取为 WAL 记录版本。如果降级目标版本小于此版本,则降级(在线)或迁移(离线)不安全,因此不应允许。
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ver | | string |
消息 HashKVRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 版本号 | revision 是哈希操作对应的键值存储的版本号。 | int64 |
消息 HashKVResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| hash | hash 是从响应成员的 MVCC 键计算出的哈希值,直到指定的版本为止。 | uint32 |
| compact_revision | compact_revision 是在开始计算哈希时键值存储的压缩版本号。 | int64 |
| hash_revision | hash_revision 是计算哈希所依据的最新版本号。 | int64 |
消息 HashRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 HashResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| hash | hash 是从响应成员的 KV 后端计算出的哈希值。 | uint32 |
消息 LeaseCheckpoint (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要检查点的租约 ID。 | int64 |
| remaining_TTL | Remaining_TTL 是租约到期前的剩余时间。 | int64 |
消息 LeaseCheckpointRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| checkpoints | | (切片) LeaseCheckpoint |
消息 LeaseCheckpointResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 LeaseGrantRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| TTL | TTL 是建议的生存时间,单位为秒。过期的租约会返回 -1。 | int64 |
| ID | ID 是请求的租约 ID。如果将 ID 设置为 0,出租方会选择一个 ID。 | int64 |
消息 LeaseGrantResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| ID | ID 是授予的租约的租约 ID。 | int64 |
| TTL | TTL 是服务器选定的租约生存时间,单位为秒。 | int64 |
| 错误 | | string |
消息 LeaseKeepAliveRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要保持活跃状态的租约的 ID。 | int64 |
消息 LeaseKeepAliveResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| ID | ID 是来自保持活跃请求的租约 ID。 | int64 |
| TTL | TTL 是该租约的新生存时间。 | int64 |
消息 LeaseLeasesRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 LeaseLeasesResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| leases | | (切片) LeaseStatus |
消息 LeaseRevokeRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要撤销的租约 ID。当 ID 被撤销时,所有关联的键都将被删除。 | int64 |
消息 LeaseRevokeResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 LeaseStatus (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | | int64 |
消息 LeaseTimeToLiveRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是租约的租约 ID。 | int64 |
| keys | keys 为 true 时表示查询附加到此租约的所有键。 | 布尔值 |
消息 LeaseTimeToLiveResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| ID | ID 是来自保持活跃请求的租约 ID。 | int64 |
| TTL | TTL 是租约剩余的生存时间(秒);租约将在 TTL+1 秒内过期。 | int64 |
| grantedTTL | GrantedTTL 是租约创建/续期时初始授予的时间,单位为秒。 | int64 |
| keys | Keys 是与此租约关联的键列表。 | (切片形式的)字节 |
消息 Member (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是此成员的成员 ID。 | uint64 |
| name | name 是该成员的人类可读名称。如果成员尚未启动,名称将为空字符串。 | string |
| peerURLs | peerURLs 是该成员向集群公开以进行通信的 URL 列表。 | 字符串(切片) |
| clientURLs | clientURLs 是该成员向客户端公开以进行通信的 URL 列表。如果成员尚未启动,clientURLs 将为空。 | 字符串(切片) |
| isLearner | isLearner 表示该成员是否为 Raft learner。 | 布尔值 |
消息 MemberAddRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| peerURLs | peerURLs 是所添加成员将用于与集群通信的 URL 列表。 | 字符串(切片) |
| isLearner | isLearner 表示所添加成员是否为 Raft learner。 | 布尔值 |
消息 MemberAddResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| member | member 是新增成员的成员信息。 | 成员 |
| 成员 | members 是添加新成员后所有成员的列表。 | (Member 的)切片 |
消息 MemberListRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| linearizable | | 布尔值 |
消息 MemberListResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 成员 | members 是与集群相关联的所有成员的列表。 | (Member 的)切片 |
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要提升的成员的成员 ID。 | uint64 |
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 成员 | members 是成员被提升后所有成员的列表。 | (Member 的)切片 |
消息 MemberRemoveRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要移除成员的成员 ID。 | uint64 |
消息 MemberRemoveResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 成员 | members 是移除成员后所有成员的列表。 | (Member 的)切片 |
消息 MemberUpdateRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| ID | ID 是要更新的成员的成员 ID。 | uint64 |
| peerURLs | peerURLs 是该成员用于与集群通信的新 URL 列表。 | 字符串(切片) |
消息 MemberUpdateResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 成员 | members 是更新成员后所有成员的列表。 | (Member 的)切片 |
消息 MoveLeaderRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| targetID | targetID 是新领导者的节点 ID。 | uint64 |
消息 MoveLeaderResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
消息 PutRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 键 | key 是要存入键值存储中的键(以字节表示)。 | 字节 |
| value | value 是要与键关联的值(以字节表示)。 | 字节 |
| 租约 | lease 是要与键关联的租约 ID。租约值为 0 表示无租约。 | int64 |
| prev_kv | 如果设置了 prev_kv,etcd 会在修改前获取之前的键值对。之前的键值对将作为响应返回在 put 响应中。 | 布尔值 |
| ignore_value | 如果设置了 ignore_value,etcd 将使用当前值更新键。如果键不存在,则返回错误。 | 布尔值 |
| ignore_lease | 如果设置了 ignore_lease,etcd 将使用当前租约更新键。如果键不存在,则返回错误。 | 布尔值 |
消息 PutResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| prev_kv | 如果请求中设置了 prev_kv,则会返回之前的键值对。 | mvccpb.KeyValue |
消息 RangeRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 键 | key 是范围的第一个键。如果没有指定 range_end,则请求仅查找该 key。 | 字节 |
| range_end | range_end 是所请求范围 [key, range_end) 的上限。如果 range_end 为 ‘\0’,则范围是所有大于等于 key 的键。如果 range_end 比 key 大一(例如,“aa”+1 == “ab”,“a\xff”+1 == “b”),那么该范围请求将获取所有以 key 为前缀的键。如果 key 和 range_end 都为 ‘\0’,则范围请求返回所有键。 | 字节 |
| limit | limit 是请求返回键数量的限制。当 limit 设置为 0 时,表示无限制。 | int64 |
| 版本号 | revision 是用于范围查询的键值存储的时间点。如果 revision 小于或等于 0,则范围查询作用于最新的键值存储。如果该 revision 已被压缩,则返回 ErrCompacted 错误。 | int64 |
| sort_order | sort_order 是返回排序结果的顺序。 | SortOrder |
| sort_target | sort_target 是用于排序的键值字段。 | SortTarget |
| serializable | serializable 将范围请求设置为使用可序列化的成员本地读取。默认情况下,范围请求是线性一致的;与可序列化请求相比,线性一致请求具有更高的延迟和更低的吞吐量,但能反映集群当前的共识状态。为了获得更好的性能,可以接受可能过时的读取,使用可序列化的范围请求可在本地处理,无需与其他节点达成共识。 | 布尔值 |
| keys_only | keys_only 启用时仅返回键,不返回值。 | 布尔值 |
| count_only | count_only 启用时仅返回范围内键的数量。 | 布尔值 |
| min_mod_revision | min_mod_revision 是返回键的修改版本的下限;所有修改版本更小的键将被过滤掉。 | int64 |
| max_mod_revision | max_mod_revision 是返回键的修改版本的上限;所有修改版本更大的键将被过滤掉。 | int64 |
| min_create_revision | min_create_revision 是返回键的创建版本的下限;所有创建版本更小的键将被过滤掉。 | int64 |
| max_create_revision | max_create_revision 是返回键的创建版本的上限;所有创建版本更大的键将被过滤掉。 | int64 |
消息 RangeResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| kvs | kvs 是范围请求匹配的键值对列表。当请求计数时,kvs 为空。 | (切片类型) mvccpb.KeyValue |
| more | more 表示在所请求的范围内是否还有更多键需要返回。 | 布尔值 |
| count | count 在请求时被设置为范围内实际的键数量。与 Kvs 不同,它不受限制和过滤条件(例如 Min/Max、Create/Modify 修订)的影响,反映的是指定范围内完整的键数量。 | int64 |
消息 RequestOp (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| request | request 是事务可接受的请求类型的联合体。 | oneof |
| request_range | | RangeRequest |
| 请求_put | | PutRequest |
| 请求_delete_range | | DeleteRangeRequest |
| 请求_txn | | TxnRequest |
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| cluster_id | cluster_id 是发送响应的集群的 ID。 | uint64 |
| member_id | member_id 是发送响应的成员的 ID。 | uint64 |
| 版本号 | revision 是请求被应用时键值存储的版本号;对于不与键值存储交互的调用,该值未设置(即为 0)。对于 watch 进度响应,header.revision 表示进度。在此流中接收到的所有后续事件都保证具有比 header.revision 更高的修订版本号。 | int64 |
| raft_term | raft_term 是请求被应用时的 Raft 任期。 | uint64 |
消息 ResponseOp (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| response | response 是事务返回的响应类型的联合体。 | oneof |
| response_range | | RangeResponse |
| response_put | | PutResponse |
| response_delete_range | | DeleteRangeResponse |
| response_txn | | TxnResponse |
消息 SnapshotRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 SnapshotResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | header 包含当前键值存储的信息。快照流中的第一个 header 表示快照的时间点。 | ResponseHeader |
| remaining_bytes | remaining_bytes 是在此消息之后还需发送的 blob 字节数。 | uint64 |
| blob | blob 包含快照流中快照的下一个数据块。 | 字节 |
| version | 创建快照的服务器的本地版本。在包含不同版本二进制文件的集群中,每个节点可能返回不同的结果。此字段告知在恢复快照时应使用哪个 etcd 服务器版本。 | string |
消息 StatusRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 StatusResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| version | version 是响应成员所使用的集群协议版本。 | string |
| dbSize | dbSize 是响应成员物理分配的后端数据库大小,以字节为单位。 | int64 |
| leader | leader 是响应成员当前认为是主节点的成员 ID。 | uint64 |
| raftIndex | raftIndex 是响应成员当前 Raft 已提交的日志索引。 | uint64 |
| raftTerm | raftTerm 是响应成员当前 Raft 所处的任期。 | uint64 |
| raftAppliedIndex | raftAppliedIndex 是响应成员当前已应用到状态机的 Raft 日志索引。 | uint64 |
| errors | errors 包含告警/健康信息和状态。 | 字符串(切片) |
| dbSizeInUse | dbSizeInUse 是响应成员逻辑上正在使用的后端数据库大小,以字节为单位。 | int64 |
| isLearner | isLearner 表示该成员是否为 Raft learner。 | 布尔值 |
| storageVersion | storageVersion 是数据库文件的版本。它相对于目标集群版本可能会有延迟更新。 | string |
| dbSizeQuota | dbSizeQuota 是配置的 etcd 存储配额,以字节为单位(通过 --quota-backend-bytes 参数传递给 etcd 实例的值)。 | int64 |
| downgradeInfo | downgradeInfo 表示是否存在降级过程。 | DowngradeInfo |
消息 TxnRequest (api/etcdserverpb/rpc.proto)
来自 Google 的 PaxosDB 论文:我们的实现围绕一个强大的原语 MultiOp 构建。除遍历操作外,所有其他数据库操作都通过一次 MultiOp 调用实现。MultiOp 原子性地执行,包含三个部分:1. 一组称为 guard 的条件测试。每个 guard 中的测试检查数据库中的单个条目,可以检查值的存在、不存在或与给定值比较。guard 中的不同测试可作用于数据库中的相同或不同条目。所有测试都会被执行并返回结果。如果所有测试均为真,则执行 t op(见下文第 2 条),否则执行 f op(见下文第 3 条)。2. 一组称为 t op 的数据库操作。列表中的每个操作是插入、删除或查找操作之一,作用于单个数据库条目。列表中的不同操作可作用于相同或不同的条目。这些操作在 guard 判断为真时执行。3. 一组称为 f op 的数据库操作。与 t op 类似,但在 guard 判断为假时执行。
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 比较 | compare 是一个表示合取关系的谓词列表。如果比较成功,则按顺序处理 success 请求,响应中将按顺序包含它们各自的响应结果;如果比较失败,则按顺序处理 failure 请求,响应中也将按顺序包含它们各自的响应结果。 | (切片类型) Compare |
| success | success 是当 compare 判断为真时将被执行的一组请求。 | (切片类型) RequestOp |
| failure | failure 是当 compare 判断为假时将被执行的一组请求。 | (切片类型) RequestOp |
消息 TxnResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| 成功 | 如果比较结果为真,则 succeeded 设置为 true,否则为 false。 | 布尔值 |
| 响应 | responses 是一个响应列表,对应于当 succeeded 为 true 时应用 success 的结果,或当 succeeded 为 false 时应用 failure 的结果。 | (切片类型) ResponseOp |
消息 WatchCancelRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| watch_id | watch_id 是要取消的观察者 ID,以便不再传输任何事件。 | int64 |
消息 WatchCreateRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| 键 | key 是要注册监听的键。 | 字节 |
| range_end | range_end 是被监听范围 [key, range_end) 的结束键。如果未提供 range_end,则仅监听 key 参数指定的单个键。如果 range_end 等于 '\0',则监听所有大于等于 key 参数的键。如果 range_end 比给定的 key 多一位,则将监听具有该 key 作为前缀的所有键。 | 字节 |
| start_revision | start_revision 是一个可选的起始修订版本(包含在内)。未设置 start_revision 表示从“当前”版本开始。 | int64 |
| progress_notify | progress_notify 被设置后,如果近期没有事件发生,etcd 服务器会定期向新观察者发送不包含事件的 WatchResponse。这在客户端希望从最近已知的修订版本恢复断开连接的观察者时非常有用。etcd 服务器可根据当前负载决定通知频率。 | 布尔值 |
| filters | filters 在服务器端对事件进行过滤,然后再发送回观察者。 | (切片类型) FilterType |
| prev_kv | 如果设置了 prev_kv,则创建的观察者会在事件发生前获取之前的 KV 值。如果之前的 KV 已被压缩,则不会返回任何内容。 | 布尔值 |
| watch_id | 如果提供了非零的 watch_id,则该 ID 将被分配给此观察者。由于在 etcd 中创建观察者不是同步操作,因此可以在同一数据流上创建多个观察者时确保顺序正确。如果在数据流上使用已被占用的 ID 创建观察者,将返回错误。 | int64 |
| fragment | fragment 允许将大型修订拆分为多个 watch 响应。 | 布尔值 |
消息 WatchProgressRequest (api/etcdserverpb/rpc.proto)
请求尽快在 watch 响应流中发送 watch 流程的状态信息。
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
消息 WatchRequest (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| request_union | request_union 是用于创建新观察者或取消现有观察者的请求。 | oneof |
| create_request | | WatchCreateRequest |
| cancel_request | | WatchCancelRequest |
| progress_request | | WatchProgressRequest |
消息 WatchResponse (api/etcdserverpb/rpc.proto)
| 字段 | 描述 | 类型 |
|---|
| (versionpb.etcd_version_msg) | | 选项 |
| header | | ResponseHeader |
| watch_id | watch_id 是对应此响应的观察者的 ID。 | int64 |
| created | 如果该响应对应一个创建 watcher 的请求,则 created 被设为 true。客户端应记录 watch_id,并期望从此同一数据流中接收该新建 watcher 的事件。所有发送给该 watcher 的事件都将附带相同的 watch_id。 | 布尔值 |
| canceled | 如果该响应对应一个取消 watcher 的请求,或者 start_revision 已被压缩,则 canceled 被设为 true。此后将不再向该已取消的 watcher 发送任何事件。 | 布尔值 |
| compact_revision | compact_revision 在 watcher 尝试监听已被压缩的索引时被设置为最小有效索引。这种情况可能发生在使用已被压缩的 revision 创建 watcher 时,或 watcher 无法跟上键值存储进度的情况下。客户端应将该 watcher 视为已取消,并且不应再尝试使用相同的 start_revision 创建新的 watcher。 | int64 |
| cancel_reason | cancel_reason 指明了取消 watcher 的原因。 | string |
| fragment | fragment 为 true 表示较大的 watch 响应被拆分到了多个响应中。 | 布尔值 |
| events | | (切片类型) mvccpb.Event |
消息 Event (api/mvccpb/kv.proto)
| 字段 | 描述 | 类型 |
|---|
| type | type 表示事件的类型。若 type 为 PUT,表示有新数据被存储到该键;若 type 为 DELETE,表示该键已被删除。 | EventType |
| kv | kv 包含事件对应的键值对。PUT 事件包含当前的 kv 对。当 PUT 事件中的 kv.Version=1 时,表示该键被创建。DELETE/EXPIRE 事件包含被删除的键,其修改版本号(mod_revision)设置为删除时的版本号。 | KeyValue |
| prev_kv | prev_kv 包含事件发生前的键值对。 | KeyValue |
消息 KeyValue (api/mvccpb/kv.proto)
| 字段 | 描述 | 类型 |
|---|
| 键 | key 是以字节形式表示的键。不允许空键。 | 字节 |
| create_revision | create_revision 是该键最后一次创建操作的版本号。 | int64 |
| mod_revision | mod_revision 是该键最后一次修改操作的版本号。 | int64 |
| version | version 是该键的版本号。删除操作会将其版本号重置为零,对该键的任何修改都会使其版本号递增。 | int64 |
| value | value 是该键所持有的值,以字节形式表示。 | 字节 |
| 租约 | lease 是附加到该键的租约 ID。当关联的租约过期时,该键将被自动删除。如果 lease 为 0,则表示该键未绑定任何租约。 | int64 |
消息 Lease (server/lease/leasepb/lease.proto)
| 字段 | 描述 | 类型 |
|---|
| ID | | int64 |
| TTL | | int64 |
| 剩余 TTL | | int64 |
消息 LeaseInternalRequest (server/lease/leasepb/lease.proto)
| 字段 | 描述 | 类型 |
|---|
| LeaseTimeToLiveRequest | | etcdserverpb.LeaseTimeToLiveRequest |
消息 LeaseInternalResponse (server/lease/leasepb/lease.proto)
| 字段 | 描述 | 类型 |
|---|
| LeaseTimeToLiveResponse | | etcdserverpb.LeaseTimeToLiveResponse |
消息 Permission (api/authpb/auth.proto)
Permission 是一个单独的实体
| 字段 | 描述 | 类型 |
|---|
| 权限类型 | | 类型 |
| 键 | | 字节 |
| range_end | | 字节 |
消息 Role (api/authpb/auth.proto)
Role 是 authRoles 存储桶中的单个条目
| 字段 | 描述 | 类型 |
|---|
| name | | 字节 |
| 键权限 | | (切片)Permission |
消息 User (api/authpb/auth.proto)
User 是 authUsers 存储桶中的单个条目
| 字段 | 描述 | 类型 |
|---|
| name | | 字节 |
| 密码 | | 字节 |
| 角色 | | 字符串(切片) |
| 选项 | | 用户添加选项 |
消息 UserAddOptions (api/authpb/auth.proto)