etcd官方文档中文版
  • Introduction
  • 官方文档
    • 开发指南
      • 搭建本地集群
      • 和 etcd 交互
      • 核心 API 参考文档
      • 并发 API 参考文档
      • gRPC 网关
      • gRPC 命名和发现
      • 试验性的 API 和特性
      • 系统限制
    • 运维指南
      • 搭建 etcd 集群
        • 运行时重配置
        • 运行时重配置的设计
      • 搭建 etcd 网关
      • 在容器内运行 etcd 集群
      • 配置
      • gRPC代理(TBD)
      • L4 网关
      • 支持平台
      • 硬件推荐(TBD)
      • 性能评测
      • 调优(TBD)
      • 安全模式
      • 基于角色的访问控制(TBD)
      • 常见问题(TBD)
      • 监控(TBD)
      • 维护
      • 理解失败
      • 灾难恢复
      • 版本
    • 学习
      • 为什么是etcd
      • 理解数据模型
      • 理解API
      • 术语
      • API保证
      • 认证子系统(TBD)
  • 核心 API 参考文档
    • KV service
      • Range方法
      • Put方法
      • DeleteRange方法
      • Txn方法
      • Compact方法
    • Watch service
      • Watch方法
    • Lease service
      • LeaseGrant方法
      • LeaseRevoke方法
      • LeaseKeepAlive方法
      • LeaseTimeToLive方法
  • 并发 API 参考文档
    • Lock service
      • Lock方法
      • Unlock方法
    • Election service
      • Campaign方法
      • Proclaim方法
      • Leader方法
      • Observe方法
      • Resign方法
  • 全文标签总览
Powered by GitBook
On this page
  1. 并发 API 参考文档
  2. Election service

Campaign方法

Campaign 方法用于参加选举以期获得领导地位:

// Campaign 等待获得选举的领导地位,如果成功返回 LeaderKey 代表领导地位。
// 然后 LeaderKey 可以用来在选举时发起新的值,在依然持有领导地位时事务性的守护 API 请求,
// 还有从选举中辞职。
rpc Campaign(CampaignRequest) returns (CampaignResponse) {}

消息定义

请求的消息体是 CampaignRequest:

message CampaignRequest {
  // name 是选举的标识符,用来参加竞选
  bytes name = 1;
  // lease is the ID of the lease attached to leadership of the election. If the
  // lease expires or is revoked before resigning leadership, then the
  // leadership is transferred to the next campaigner, if any.
  // lease 是附加到选举领导地位的租约的ID。如果租约过期或者在放弃领导地位之前取消,
  // 则领导地位转移到下一个竞选者,如果有。
  int64 lease = 2;
  // value 是竞选者赢得选举时设置的初始化公告值。
  bytes value = 3;
}

应答的消息体是 CampaignResponse:

message CampaignResponse {
  etcdserverpb.ResponseHeader header = 1;
  // leader 描述用于持有选举的领导地位的资源
  LeaderKey leader = 2;
}

LeaderKey 消息体的内容:

message LeaderKey {
  // name 是选举标识符,和领导地位 key 对应
  bytes name = 1;
  // key 是不透明的 key ,代表选举的领导地位。
  // 如果 key 被删除,则领导地位丢失
  bytes key = 2;
  // rev 是 key 的创建修订版本。它可以用来在事务期间测验选举的领导地位,通过测验 key 的创建修订版本匹配 rev
  int64 rev = 3;
  // lease 是选举领导者的租约 ID
  int64 lease = 4;
}
PreviousElection serviceNextProclaim方法

Last updated 6 years ago