API 参考

此 API 参考文档是从命名的 .proto 文件自动生成的。

服务 Auth (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
AuthEnableAuthEnableRequestAuthEnableResponseAuthEnable 启用认证功能。
AuthDisableAuthDisableRequestAuthDisableResponseAuthDisable 禁用认证功能。
AuthStatusAuthStatusRequestAuthStatusResponseAuthStatus 显示认证状态。
AuthenticateAuthenticateRequestAuthenticateResponseAuthenticate 处理认证请求。
UserAddAuthUserAddRequestAuthUserAddResponseUserAdd 添加一个新用户。用户名不能为空。
UserGetAuthUserGetRequestAuthUserGetResponseUserGet 获取用户的详细信息。
UserListAuthUserListRequestAuthUserListResponseUserList 获取所有用户的列表。
UserDeleteAuthUserDeleteRequestAuthUserDeleteResponseUserDelete 删除指定的用户。
UserChangePasswordAuthUserChangePasswordRequestAuthUserChangePasswordResponseUserChangePassword 修改指定用户的密码。
UserGrantRoleAuthUserGrantRoleRequestAuthUserGrantRoleResponseUserGrant 向指定用户授予一个角色。
UserRevokeRoleAuthUserRevokeRoleRequestAuthUserRevokeRoleResponseUserRevokeRole 撤销指定用户的角色。
RoleAddAuthRoleAddRequestAuthRoleAddResponseRoleAdd 添加一个新角色。角色名称不能为空。
RoleGetAuthRoleGetRequestAuthRoleGetResponseRoleGet 获取角色的详细信息。
RoleListAuthRoleListRequestAuthRoleListResponseRoleList 获取所有角色的列表。
RoleDeleteAuthRoleDeleteRequestAuthRoleDeleteResponseRoleDelete 删除指定的角色。
RoleGrantPermissionAuthRoleGrantPermissionRequestAuthRoleGrantPermissionResponseRoleGrantPermission 向指定角色授予对特定键或范围的权限。
RoleRevokePermissionAuthRoleRevokePermissionRequestAuthRoleRevokePermissionResponseRoleRevokePermission 撤销指定角色对某个键或范围的权限。
service Cluster (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
MemberAddMemberAddRequestMemberAddResponseMemberAdd 将成员添加到集群中。
MemberRemoveMemberRemoveRequestMemberRemoveResponseMemberRemove 从集群中移除一个现有成员。
MemberUpdateMemberUpdateRequestMemberUpdateResponseMemberUpdate 更新成员的配置。
MemberListMemberListRequestMemberListResponseMemberList 列出集群中的所有成员。
MemberPromoteMemberPromoteRequestMemberPromoteResponseMemberPromote 将一个 raft 学习者(非投票成员)提升为 raft 投票成员。
服务 KV (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
范围RangeRequestRangeResponseRange 从键值存储中获取指定范围内的键。
写入PutRequestPutResponsePut 将给定的键写入键值存储。一次 Put 请求会增加键值存储的版本号,并在事件历史中生成一个事件。
DeleteRangeDeleteRangeRequestDeleteRangeResponseDeleteRange 从键值存储中删除指定范围内的键。一次删除请求会增加键值存储的版本号,并为每个被删除的键在事件历史中生成一个删除事件。
TxnTxnRequestTxnResponseTxn 在单个事务中处理多个请求。一个 Txn 请求会增加键值存储的版本号,并为每个完成的请求生成具有相同版本号的事件。不允许在一个 Txn 中多次修改同一个键。
CompactCompactionRequestCompactionResponseCompact 压缩 etcd 键值存储中的事件历史。应定期执行压缩操作,否则事件历史将无限增长。
服务 Lease (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
LeaseGrantLeaseGrantRequestLeaseGrantResponseLeaseGrant 创建一个租约,如果服务器在指定的生存时间内未收到 keepAlive,则该租约将过期。所有绑定到该租约的键将在租约过期时被删除。每个过期的键都会在事件历史中生成一个删除事件。
LeaseRevokeLeaseRevokeRequestLeaseRevokeResponseLeaseRevoke 撤销一个租约。所有绑定到该租约的键将过期并被删除。
LeaseKeepAliveLeaseKeepAliveRequestLeaseKeepAliveResponseLeaseKeepAlive 通过在客户端与服务器之间流式传输保活请求和响应,来保持租约的有效性。
LeaseTimeToLiveLeaseTimeToLiveRequestLeaseTimeToLiveResponseLeaseTimeToLive 获取租约信息。
LeaseLeasesLeaseLeasesRequestLeaseLeasesResponseLeaseLeases 列出所有现有的租约。
服务 Maintenance (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
告警AlarmRequestAlarmResponseAlarm 用于激活、停用和查询有关集群健康状态的警报。
StatusStatusRequestStatusResponseStatus 获取成员的状态。
DefragmentDefragmentRequestDefragmentResponseDefragment 对成员的后端数据库进行碎片整理,以回收存储空间。
HashHashRequestHashResponseHash 计算整个后端键空间的哈希值,包括键、租约以及其他存储中的桶。此功能**仅用于测试**!请勿在生产环境中依赖此操作,特别是在存在持续事务的情况下,因为 Hash 操作不持有 MVCC 锁。对于“key”桶的一致性检查,请使用“HashKV”API。
HashKVHashKVRequestHashKVResponseHashKV 计算到指定修订版本为止所有 MVCC 键的哈希值。它仅遍历后端存储中的“key”桶。
快照SnapshotRequestSnapshotResponseSnapshot 通过流将集群成员的整个后端快照发送给客户端。
MoveLeaderMoveLeaderRequestMoveLeaderResponseMoveLeader 请求当前领导者节点将其领导权转移给指定的接收者。
DowngradeDowngradeRequestDowngradeResponseDowngrade 请求对集群版本进行降级、验证可行性或取消降级操作。自 etcd 3.5 起支持。
service Watch (api/etcdserverpb/rpc.proto)
方法请求类型响应类型描述
WatchWatchRequestWatchResponseWatch 监听正在发生或已经发生的事件。输入和输出均为流:输入流用于创建和取消监听器,输出流用于发送事件。一个 Watch RPC 可以同时监听多个键范围,一次性流式传输多个监听器的事件。可以从最近一次压缩版本开始监听完整的事件历史。
message AlarmMember (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
memberIDmemberID 是与触发警报关联的成员的 ID。uint64
alarmalarm 是已触发的警报类型。AlarmType
message AlarmRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
actionaction 是要发出的告警请求类型。该操作可以获取告警状态、激活告警,或停用已触发的告警。AlarmAction
memberIDmemberID 是与告警相关联的成员的 ID。如果 memberID 为 0,则该告警请求适用于所有成员。uint64
alarmalarm 是本次请求所考虑的告警类型。AlarmType
消息 AlarmResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
alarmsalarms 是与该告警请求相关联的告警列表。(切片类型) AlarmMember
消息 AuthDisableRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 AuthDisableResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthEnableRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 AuthEnableResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthRoleAddRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namename 是要添加到认证系统中的角色名称。string
消息 AuthRoleAddResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthRoleDeleteRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
rolestring
消息 AuthRoleDeleteResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthRoleGetRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
rolestring
消息 AuthRoleGetResponse (api/etcdserverpb/rpc.proto)
字段描述类型
headerResponseHeader
perm(切片类型) authpb.Permission
消息 AuthRoleGrantPermissionRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namename 是将被授予权限的角色的名称。string
permperm 是要授予该角色的权限。authpb.Permission
消息 AuthRoleGrantPermissionResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthRoleListRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 AuthRoleListResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
角色字符串(切片)
消息 AuthRoleRevokePermissionRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
rolestring
字节
range_end字节
消息 AuthRoleRevokePermissionResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthStatusRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 AuthStatusResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
enabled布尔值
authRevisionauthRevision 是当前 auth 存储的版本号uint64
消息 AuthUserAddRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namestring
密码string
选项authpb.UserAddOptions
hashedPasswordstring
消息 AuthUserAddResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthUserChangePasswordRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namename 是正在更改密码的用户的名称。string
密码password 是用户的新密码。注意:此字段将在 API 层被移除。string
hashedPasswordhashedPassword 是用户的新密码。注意:此字段将在 API 层初始化。string
消息 AuthUserChangePasswordResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthUserDeleteRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namename 是要删除的用户的名称。string
消息 AuthUserDeleteResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthUserGetRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namestring
消息 AuthUserGetResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
角色字符串(切片)
消息 AuthUserGrantRoleRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
用户user 是应被授予指定角色的用户的名称。string
rolerole 是要授予该用户的角色的名称。string
消息 AuthUserGrantRoleResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthUserListRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 AuthUserListResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
用户列表字符串(切片)
消息 AuthUserRevokeRoleRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namestring
rolestring
消息 AuthUserRevokeRoleResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 AuthenticateRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
namestring
密码string
消息 AuthenticateResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
令牌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)选项
headerResponseHeader
消息 Compare (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
结果result 是本次比较的逻辑比较操作。CompareResult
目标target 是用于比较操作的键值字段。CompareTarget
key 是比较操作中的主体键。字节
target_uniononeof
versionversion 是给定键的版本。int64
create_revisioncreate_revision 是给定键的创建时的修订版本。int64
mod_revisionmod_revision 是给定键最后一次修改时的修订版本。int64
valuevalue 是给定键的值,以字节为单位。字节
租约lease 是给定键的租约 ID。int64
range_endrange_end 将给定目标与范围 [key, range_end) 内的所有键进行比较。有关键范围的更多详细信息,请参见 RangeRequest。字节
消息 DefragmentRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 DefragmentResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 DeleteRangeRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
key 是要删除范围内的第一个键。字节
range_endrange_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)选项
headerResponseHeader
deleteddeleted 是删除范围请求所删除的键的数量。int64
prev_kvs如果在请求中设置了 prev_kv,则会返回之前的键值对。(切片类型) mvccpb.KeyValue
消息 DowngradeInfo (api/etcdserverpb/rpc.proto)
字段描述类型
enabledenabled 表示集群是否允许降级。布尔值
targetVersiontargetVersion 是目标降级版本。string
消息 DowngradeRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
actionaction 是要发起的降级请求类型。该操作可以用于 VALIDATE(验证)目标版本、DOWNGRADE(降级)集群版本,或 CANCEL(取消)当前正在进行的降级任务。DowngradeAction
versionversion 是要降级到的目标版本。string
消息 DowngradeResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
versionversion 是当前集群版本。string
消息 DowngradeVersionTestRequest (api/etcdserverpb/rpc.proto)

DowngradeVersionTestRequest 仅用于测试。此请求中的版本将被读取为 WAL 记录版本。如果降级目标版本小于此版本,则降级(在线)或迁移(离线)不安全,因此不应允许。

字段描述类型
(versionpb.etcd_version_msg)选项
verstring
消息 HashKVRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
版本号revision 是哈希操作对应的键值存储的版本号。int64
消息 HashKVResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
hashhash 是从响应成员的 MVCC 键计算出的哈希值,直到指定的版本为止。uint32
compact_revisioncompact_revision 是在开始计算哈希时键值存储的压缩版本号。int64
hash_revisionhash_revision 是计算哈希所依据的最新版本号。int64
消息 HashRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 HashResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
hashhash 是从响应成员的 KV 后端计算出的哈希值。uint32
消息 LeaseCheckpoint (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要检查点的租约 ID。int64
remaining_TTLRemaining_TTL 是租约到期前的剩余时间。int64
消息 LeaseCheckpointRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
checkpoints(切片) LeaseCheckpoint
消息 LeaseCheckpointResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 LeaseGrantRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
TTLTTL 是建议的生存时间,单位为秒。过期的租约会返回 -1。int64
IDID 是请求的租约 ID。如果将 ID 设置为 0,出租方会选择一个 ID。int64
消息 LeaseGrantResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
IDID 是授予的租约的租约 ID。int64
TTLTTL 是服务器选定的租约生存时间,单位为秒。int64
错误string
消息 LeaseKeepAliveRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要保持活跃状态的租约的 ID。int64
消息 LeaseKeepAliveResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
IDID 是来自保持活跃请求的租约 ID。int64
TTLTTL 是该租约的新生存时间。int64
消息 LeaseLeasesRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 LeaseLeasesResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
leases(切片) LeaseStatus
消息 LeaseRevokeRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要撤销的租约 ID。当 ID 被撤销时,所有关联的键都将被删除。int64
消息 LeaseRevokeResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 LeaseStatus (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDint64
消息 LeaseTimeToLiveRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是租约的租约 ID。int64
keyskeys 为 true 时表示查询附加到此租约的所有键。布尔值
消息 LeaseTimeToLiveResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
IDID 是来自保持活跃请求的租约 ID。int64
TTLTTL 是租约剩余的生存时间(秒);租约将在 TTL+1 秒内过期。int64
grantedTTLGrantedTTL 是租约创建/续期时初始授予的时间,单位为秒。int64
keysKeys 是与此租约关联的键列表。(切片形式的)字节
消息 Member (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是此成员的成员 ID。uint64
namename 是该成员的人类可读名称。如果成员尚未启动,名称将为空字符串。string
peerURLspeerURLs 是该成员向集群公开以进行通信的 URL 列表。字符串(切片)
clientURLsclientURLs 是该成员向客户端公开以进行通信的 URL 列表。如果成员尚未启动,clientURLs 将为空。字符串(切片)
isLearnerisLearner 表示该成员是否为 Raft learner。布尔值
消息 MemberAddRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
peerURLspeerURLs 是所添加成员将用于与集群通信的 URL 列表。字符串(切片)
isLearnerisLearner 表示所添加成员是否为 Raft learner。布尔值
消息 MemberAddResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
membermember 是新增成员的成员信息。成员
成员members 是添加新成员后所有成员的列表。(Member 的)切片
消息 MemberListRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
linearizable布尔值
消息 MemberListResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
成员members 是与集群相关联的所有成员的列表。(Member 的)切片
消息 MemberPromoteRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要提升的成员的成员 ID。uint64
消息 MemberPromoteResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
成员members 是成员被提升后所有成员的列表。(Member 的)切片
消息 MemberRemoveRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要移除成员的成员 ID。uint64
消息 MemberRemoveResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
成员members 是移除成员后所有成员的列表。(Member 的)切片
消息 MemberUpdateRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
IDID 是要更新的成员的成员 ID。uint64
peerURLspeerURLs 是该成员用于与集群通信的新 URL 列表。字符串(切片)
消息 MemberUpdateResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
成员members 是更新成员后所有成员的列表。(Member 的)切片
消息 MoveLeaderRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
targetIDtargetID 是新领导者的节点 ID。uint64
消息 MoveLeaderResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
消息 PutRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
key 是要存入键值存储中的键(以字节表示)。字节
valuevalue 是要与键关联的值(以字节表示)。字节
租约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)选项
headerResponseHeader
prev_kv如果请求中设置了 prev_kv,则会返回之前的键值对。mvccpb.KeyValue
消息 RangeRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
key 是范围的第一个键。如果没有指定 range_end,则请求仅查找该 key。字节
range_endrange_end 是所请求范围 [key, range_end) 的上限。如果 range_end 为 ‘\0’,则范围是所有大于等于 key 的键。如果 range_end 比 key 大一(例如,“aa”+1 == “ab”,“a\xff”+1 == “b”),那么该范围请求将获取所有以 key 为前缀的键。如果 key 和 range_end 都为 ‘\0’,则范围请求返回所有键。字节
limitlimit 是请求返回键数量的限制。当 limit 设置为 0 时,表示无限制。int64
版本号revision 是用于范围查询的键值存储的时间点。如果 revision 小于或等于 0,则范围查询作用于最新的键值存储。如果该 revision 已被压缩,则返回 ErrCompacted 错误。int64
sort_ordersort_order 是返回排序结果的顺序。SortOrder
sort_targetsort_target 是用于排序的键值字段。SortTarget
serializableserializable 将范围请求设置为使用可序列化的成员本地读取。默认情况下,范围请求是线性一致的;与可序列化请求相比,线性一致请求具有更高的延迟和更低的吞吐量,但能反映集群当前的共识状态。为了获得更好的性能,可以接受可能过时的读取,使用可序列化的范围请求可在本地处理,无需与其他节点达成共识。布尔值
keys_onlykeys_only 启用时仅返回键,不返回值。布尔值
count_onlycount_only 启用时仅返回范围内键的数量。布尔值
min_mod_revisionmin_mod_revision 是返回键的修改版本的下限;所有修改版本更小的键将被过滤掉。int64
max_mod_revisionmax_mod_revision 是返回键的修改版本的上限;所有修改版本更大的键将被过滤掉。int64
min_create_revisionmin_create_revision 是返回键的创建版本的下限;所有创建版本更小的键将被过滤掉。int64
max_create_revisionmax_create_revision 是返回键的创建版本的上限;所有创建版本更大的键将被过滤掉。int64
消息 RangeResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
kvskvs 是范围请求匹配的键值对列表。当请求计数时,kvs 为空。(切片类型) mvccpb.KeyValue
moremore 表示在所请求的范围内是否还有更多键需要返回。布尔值
countcount 在请求时被设置为范围内实际的键数量。与 Kvs 不同,它不受限制和过滤条件(例如 Min/Max、Create/Modify 修订)的影响,反映的是指定范围内完整的键数量。int64
消息 RequestOp (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
requestrequest 是事务可接受的请求类型的联合体。oneof
request_rangeRangeRequest
请求_putPutRequest
请求_delete_rangeDeleteRangeRequest
请求_txnTxnRequest
消息 ResponseHeader (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
cluster_idcluster_id 是发送响应的集群的 ID。uint64
member_idmember_id 是发送响应的成员的 ID。uint64
版本号revision 是请求被应用时键值存储的版本号;对于不与键值存储交互的调用,该值未设置(即为 0)。对于 watch 进度响应,header.revision 表示进度。在此流中接收到的所有后续事件都保证具有比 header.revision 更高的修订版本号。int64
raft_termraft_term 是请求被应用时的 Raft 任期。uint64
消息 ResponseOp (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
responseresponse 是事务返回的响应类型的联合体。oneof
response_rangeRangeResponse
response_putPutResponse
response_delete_rangeDeleteRangeResponse
response_txnTxnResponse
消息 SnapshotRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 SnapshotResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerheader 包含当前键值存储的信息。快照流中的第一个 header 表示快照的时间点。ResponseHeader
remaining_bytesremaining_bytes 是在此消息之后还需发送的 blob 字节数。uint64
blobblob 包含快照流中快照的下一个数据块。字节
version创建快照的服务器的本地版本。在包含不同版本二进制文件的集群中,每个节点可能返回不同的结果。此字段告知在恢复快照时应使用哪个 etcd 服务器版本。string
消息 StatusRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
消息 StatusResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
versionversion 是响应成员所使用的集群协议版本。string
dbSizedbSize 是响应成员物理分配的后端数据库大小,以字节为单位。int64
leaderleader 是响应成员当前认为是主节点的成员 ID。uint64
raftIndexraftIndex 是响应成员当前 Raft 已提交的日志索引。uint64
raftTermraftTerm 是响应成员当前 Raft 所处的任期。uint64
raftAppliedIndexraftAppliedIndex 是响应成员当前已应用到状态机的 Raft 日志索引。uint64
errorserrors 包含告警/健康信息和状态。字符串(切片)
dbSizeInUsedbSizeInUse 是响应成员逻辑上正在使用的后端数据库大小,以字节为单位。int64
isLearnerisLearner 表示该成员是否为 Raft learner。布尔值
storageVersionstorageVersion 是数据库文件的版本。它相对于目标集群版本可能会有延迟更新。string
dbSizeQuotadbSizeQuota 是配置的 etcd 存储配额,以字节为单位(通过 --quota-backend-bytes 参数传递给 etcd 实例的值)。int64
downgradeInfodowngradeInfo 表示是否存在降级过程。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
successsuccess 是当 compare 判断为真时将被执行的一组请求。(切片类型) RequestOp
failurefailure 是当 compare 判断为假时将被执行的一组请求。(切片类型) RequestOp
消息 TxnResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
成功如果比较结果为真,则 succeeded 设置为 true,否则为 false。布尔值
响应responses 是一个响应列表,对应于当 succeeded 为 true 时应用 success 的结果,或当 succeeded 为 false 时应用 failure 的结果。(切片类型) ResponseOp
消息 WatchCancelRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
watch_idwatch_id 是要取消的观察者 ID,以便不再传输任何事件。int64
消息 WatchCreateRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
key 是要注册监听的键。字节
range_endrange_end 是被监听范围 [key, range_end) 的结束键。如果未提供 range_end,则仅监听 key 参数指定的单个键。如果 range_end 等于 '\0',则监听所有大于等于 key 参数的键。如果 range_end 比给定的 key 多一位,则将监听具有该 key 作为前缀的所有键。字节
start_revisionstart_revision 是一个可选的起始修订版本(包含在内)。未设置 start_revision 表示从“当前”版本开始。int64
progress_notifyprogress_notify 被设置后,如果近期没有事件发生,etcd 服务器会定期向新观察者发送不包含事件的 WatchResponse。这在客户端希望从最近已知的修订版本恢复断开连接的观察者时非常有用。etcd 服务器可根据当前负载决定通知频率。布尔值
filtersfilters 在服务器端对事件进行过滤,然后再发送回观察者。(切片类型) FilterType
prev_kv如果设置了 prev_kv,则创建的观察者会在事件发生前获取之前的 KV 值。如果之前的 KV 已被压缩,则不会返回任何内容。布尔值
watch_id如果提供了非零的 watch_id,则该 ID 将被分配给此观察者。由于在 etcd 中创建观察者不是同步操作,因此可以在同一数据流上创建多个观察者时确保顺序正确。如果在数据流上使用已被占用的 ID 创建观察者,将返回错误。int64
fragmentfragment 允许将大型修订拆分为多个 watch 响应。布尔值
消息 WatchProgressRequest (api/etcdserverpb/rpc.proto)

请求尽快在 watch 响应流中发送 watch 流程的状态信息。

字段描述类型
(versionpb.etcd_version_msg)选项
消息 WatchRequest (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
request_unionrequest_union 是用于创建新观察者或取消现有观察者的请求。oneof
create_requestWatchCreateRequest
cancel_requestWatchCancelRequest
progress_requestWatchProgressRequest
消息 WatchResponse (api/etcdserverpb/rpc.proto)
字段描述类型
(versionpb.etcd_version_msg)选项
headerResponseHeader
watch_idwatch_id 是对应此响应的观察者的 ID。int64
created如果该响应对应一个创建 watcher 的请求,则 created 被设为 true。客户端应记录 watch_id,并期望从此同一数据流中接收该新建 watcher 的事件。所有发送给该 watcher 的事件都将附带相同的 watch_id。布尔值
canceled如果该响应对应一个取消 watcher 的请求,或者 start_revision 已被压缩,则 canceled 被设为 true。此后将不再向该已取消的 watcher 发送任何事件。布尔值
compact_revisioncompact_revision 在 watcher 尝试监听已被压缩的索引时被设置为最小有效索引。这种情况可能发生在使用已被压缩的 revision 创建 watcher 时,或 watcher 无法跟上键值存储进度的情况下。客户端应将该 watcher 视为已取消,并且不应再尝试使用相同的 start_revision 创建新的 watcher。int64
cancel_reasoncancel_reason 指明了取消 watcher 的原因。string
fragmentfragment 为 true 表示较大的 watch 响应被拆分到了多个响应中。布尔值
events(切片类型) mvccpb.Event
消息 Event (api/mvccpb/kv.proto)
字段描述类型
typetype 表示事件的类型。若 type 为 PUT,表示有新数据被存储到该键;若 type 为 DELETE,表示该键已被删除。EventType
kvkv 包含事件对应的键值对。PUT 事件包含当前的 kv 对。当 PUT 事件中的 kv.Version=1 时,表示该键被创建。DELETE/EXPIRE 事件包含被删除的键,其修改版本号(mod_revision)设置为删除时的版本号。KeyValue
prev_kvprev_kv 包含事件发生前的键值对。KeyValue
消息 KeyValue (api/mvccpb/kv.proto)
字段描述类型
key 是以字节形式表示的键。不允许空键。字节
create_revisioncreate_revision 是该键最后一次创建操作的版本号。int64
mod_revisionmod_revision 是该键最后一次修改操作的版本号。int64
versionversion 是该键的版本号。删除操作会将其版本号重置为零,对该键的任何修改都会使其版本号递增。int64
valuevalue 是该键所持有的值,以字节形式表示。字节
租约lease 是附加到该键的租约 ID。当关联的租约过期时,该键将被自动删除。如果 lease 为 0,则表示该键未绑定任何租约。int64
消息 Lease (server/lease/leasepb/lease.proto)
字段描述类型
IDint64
TTLint64
剩余 TTLint64
消息 LeaseInternalRequest (server/lease/leasepb/lease.proto)
字段描述类型
LeaseTimeToLiveRequestetcdserverpb.LeaseTimeToLiveRequest
消息 LeaseInternalResponse (server/lease/leasepb/lease.proto)
字段描述类型
LeaseTimeToLiveResponseetcdserverpb.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)
字段描述类型
无密码布尔值

最后更新于 2025 年 6 月 3 日:递归地将 v3.6 的内容复制到 v3.7(a90b2a6)