API 参考:并发
此 API 参考文档是从命名的 .proto 文件自动生成的。
服务 Lock (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
锁服务通过 gRPC 接口暴露客户端侧的加锁功能。
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| Lock | LockRequest | LockResponse | Lock 在指定名称的分布式共享锁上进行加锁。成功时,会返回一个唯一键,该键在调用方持有锁期间持续存在。此键可与事务结合使用,以安全地确保对 etcd 的更新仅在持有锁所有权时发生。锁将一直被持有,直到对该键调用 Unlock,或与所有者关联的租约过期。 |
| Unlock | UnlockRequest | UnlockResponse | Unlock 接收由 Lock 返回的键,并释放对该锁的持有。下一个等待该锁的 Lock 调用者将被唤醒并获得锁的所有权。 |
消息 LockRequest (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| 字段 | 描述 | 类型 |
|---|
| name | name 是要获取的分布式共享锁的标识符。 | 字节 |
| 租约 | lease 是将附加到锁所有权上的租约 ID。如果租约过期或被撤销且当前持有锁,则锁将自动释放。使用相同租约调用 Lock 将被视为单次获取;用同一租约重复加锁无实际效果。 | int64 |
消息 LockResponse (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
| 键 | key 是一个在 etcd 中存在的键,其生命周期与 Lock 调用者持有锁的时间一致。用户不应修改此键,否则锁的行为将变得不可预测。 | 字节 |
消息 UnlockRequest (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| 字段 | 描述 | 类型 |
|---|
| 键 | key 是由 Lock 授予的锁所有权键。 | 字节 |
消息 UnlockResponse (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
服务 Election (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
选举服务通过 gRPC 接口暴露客户端侧的选举功能。
| 方法 | 请求类型 | 响应类型 | 描述 |
|---|
| Campaign | CampaignRequest | CampaignResponse | Campaign 等待在一次选举中获得领导权,若成功则返回表示领导权的 LeaderKey。随后可用该 LeaderKey 在选举中发布新值、通过事务方式确保 API 请求仅在仍持有领导权时执行,以及从选举中主动退出。 |
| Proclaim | ProclaimRequest | ProclaimResponse | Proclaim 使用新值更新领导者的已发布值。 |
| Leader | LeaderRequest | LeaderResponse | Leader 返回当前的选举宣告(如果存在的话)。 |
| Observe | LeaderRequest | LeaderResponse | Observe 按顺序流式传输由选举中当选的 leader 所发布的选举宣告。 |
| Resign | ResignRequest | ResignResponse | Resign 释放选举领导权,以便其他竞选者可以取得该选举的领导权。 |
消息 CampaignRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| name | name 是该次选举的标识符。 | 字节 |
| 租约 | lease 是附加到选举领导权上的租约 ID。如果租约在放弃领导权之前过期或被撤销,则领导权将转移给下一个竞选者(如果有的话)。 | int64 |
| value | value 是竞选者赢得选举时设置的初始宣告值。 | 字节 |
消息 CampaignResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
| leader | leader 描述了用于维持选举领导权的资源。 | LeaderKey |
消息 LeaderKey (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| name | name 是与领导权密钥对应的选举标识符。 | 字节 |
| 键 | key 是表示选举所有权的一个不透明密钥。如果该 key 被删除,则失去领导权。 | 字节 |
| rev | rev 是 key 的创建版本号。它可用于事务中测试是否拥有选举权,方法是检查 key 的创建版本是否与 rev 匹配。 | int64 |
| 租约 | lease 是选举 leader 的租约 ID。 | int64 |
消息 LeaderRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| name | name 是用于查询领导权信息的选举标识符。 | 字节 |
消息 LeaderResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
| kv | kv 是表示最新 leader 更新的键值对。 | mvccpb.KeyValue |
消息 ProclaimRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| leader | leader 是对该次选举的领导权持有。 | LeaderKey |
| value | value 是一个更新值,用于覆盖 leader 当前的值。 | 字节 |
消息 ProclaimResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
消息 ResignRequest (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| leader | leader 是通过辞职放弃的领导权。 | LeaderKey |
消息 ResignResponse (server/etcdserver/api/v3election/v3electionpb/v3election.proto)
| 字段 | 描述 | 类型 |
|---|
| header | | etcdserverpb.ResponseHeader |
消息 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 |