Leader 方法

Leader 方法用于信息查询:

  1. // Leader 返回当前的选举公告,如果有。
  2. rpc Leader(LeaderRequest) returns (LeaderResponse) {}

消息定义

请求的消息体是 LeaderRequest

  1. message LeaderRequest {
  2. // name 是选举标识符,用于查询领导地位信息的
  3. bytes name = 1;
  4. }

应答的消息体是 LeaderResponse

  1. message LeaderResponse {
  2. etcdserverpb.ResponseHeader header = 1;
  3. // kv 是键值对,体现最后的领导者更新
  4. mvccpb.KeyValue kv = 2;
  5. }

mvccpb.KeyValue 来自 kv.proto,消息体定义为:

  1. message KeyValue {
  2. // key 是 bytes 格式的 key。不容许 key 为空。
  3. bytes key = 1;
  4. // create_revision 是这个 key 最后一次创建的修订版本
  5. int64 create_revision = 2;
  6. // mod_revision 是这个 key 最后一次修改的修订版本
  7. int64 mod_revision = 3;
  8. // version 是 key 的版本。删除会重置版本为0,而任何 key 的修改会增加它的版本。
  9. int64 version = 4;
  10. // value 是 key 持有的值,bytes 格式。
  11. bytes value = 5;
  12. // lease 是附加给 key 的租约 id。
  13. // 当附加的租约过期时,key 将被删除。
  14. // 如果 lease 为0,则没有租约附加到 key。
  15. int64 lease = 6;
  16. }