跳转到主要内容

API 参考:并发

etcd 并发 API 参考

本文 API 参考由命名的 .proto 文件自动生成。

服务 Lock (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)

锁服务将客户端锁功能以 gRPC 接口的形式暴露。

方法请求类型响应类型描述
LockLockRequestLockResponseLock 在指定名称的锁上获取分布式共享锁。成功时,将返回一个唯一键,该键在调用方持有锁期间持续存在。该键可与事务配合使用,以确保对 etcd 的更新仅在持有锁所有权时发生。锁将持续持有,直至对键调用 Unlock,或与所有者关联的租约到期。
UnlockUnlockRequestUnlockResponseUnlock 接收 Lock 返回的键,并释放对锁的持有。等待获取锁的下一个 Lock 调用者将被唤醒,并获得锁的所有权。
消息 LockRequest (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
字段描述类型
namename 是要获取的分布式共享锁的标识符。bytes
leaselease 是将附加到锁所有权的租约 ID。如果该租约到期或被撤销且当前持有锁,则锁会自动释放。使用相同租约调用 Lock 将被视为一次获取;使用相同租约两次锁定为无操作。int64
消息 LockResponse (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
key键是在锁持有者持有锁期间存在于 etcd 中的键。用户不应修改此键,否则锁可能表现出未定义行为。bytes
消息 UnlockRequest (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
字段描述类型
keykey 是由 Lock 分配的锁所有权键。bytes
消息 UnlockResponse (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
服务 Election (server/etcdserver/api/v3election/v3electionpb/v3election.proto)

选举服务通过 gRPC 接口向客户端暴露选举功能。

方法请求类型响应类型描述
CampaignCampaignRequestCampaignResponseCampaign 等待在选举中获取领导权,若成功则返回代表领导权的 LeaderKey。该 LeaderKey 可用于在选举中发布新值、以事务方式保护依赖于当前领导权的 API 请求,以及退出选举。
ProclaimProclaimRequestProclaimResponseProclaim 使用新值更新领导者的公布值。
LeaderLeaderRequestLeaderResponseLeader 返回当前选举的公布值(如有)。
ObserveLeaderRequestLeaderResponseObserve 以有序方式流式传输选举中当选领导者发布的公告。
ResignResignRequestResignResponseResign 释放选举中的领导权,使其他竞选者可获取领导权。
消息 CampaignRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
namename 是竞选的标识符。bytes
leaselease 是与选举领导权关联的租约 ID。如果在放弃领导权之前租约到期或被撤销,则领导权将转移给下一个竞选者(如果存在)。int64
valuevalue 是竞选者赢得选举时设置的初始声明值。bytes
消息 CampaignResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
leaderleader 描述用于维持选举领导权的资源。LeaderKey
消息 LeaderKey (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
namename 是与领导权键对应的选举标识符。bytes
keykey 是表示选举所有权的不透明键。若该键被删除,则失去领导权。bytes
revrev 是该键的创建修订版本。在事务中可通过检查键的创建修订版本是否与 rev 匹配,来验证对选举的所有权。int64
leaselease 是选举领导者的租约 ID。int64
消息 LeaderRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
namename 是领导权信息的选举标识符。bytes
消息 LeaderResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
kvkv 表示最新的领导者更新的键值对。mvccpb.KeyValue
消息 ProclaimRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
leaderleader 表示对选举的领导权持有。LeaderKey
valuevalue 是用于覆盖领导者当前值的更新。bytes
消息 ProclaimResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
消息 ResignRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
leaderleader 是通过辞职放弃领导权的领导者。LeaderKey
消息 ResignResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
字段描述类型
headeretcdserverpb.ResponseHeader
消息 Event (api/mvccpb/kv.proto)
字段描述类型
typetype 表示事件类型。若 type 为 PUT,表示已将新数据存储至键。若 type 为 DELETE,表示该键已被删除。EventType
kvkv 保存事件对应的 KeyValue。PUT 事件包含当前的键值对。PUT 事件中 kv.Version=1 表示键的创建。DELETE/EXPIRE 事件包含被删除的键,其修改修订版本设置为删除时的修订版本。KeyValue
prev_kvprev_kv 保存事件发生前的键值对。KeyValue
消息 KeyValue (api/mvccpb/kv.proto)
字段描述类型
keykey 是以字节形式表示的键。不允许使用空键。字节
create_revisioncreate_revision 是该键上次创建时的修订版本。int64
mod_revisionmod_revision 是该键上次修改时的修订版本。int64
versionversion 是键的版本号。删除操作会将版本号重置为零,任何对键的修改都会增加其版本号。int64
valuevalue 是键所持有的值,以字节形式表示。字节
leaselease 是附加到该键的租约 ID。当附加的租约到期时,该键将被删除。若 lease 为 0,则表示该键未附加任何租约。int64