etcdv3
简介
使用gs的grpc和etcdv3通信
注意事项
- ./src/rpc.proto 为etcd的protobuf定义
- class_map作用仅是约束并提示map的内容
- Message类中oneof 以及repeated关键字在class_map中的构造
// 如rpc.proto中定义的RequestOp
message RequestOp {
// 其主要内容是下面类似union的结构
oneof request {
RangeRequest request_range = 1;
PutRequest request_put = 2;
DeleteRangeRequest request_delete_range = 3;
TxnRequest request_txn = 4;
}
}
//gs中并无union, 所以对应class_map的__new()函数为
public void __new(RequestOp self , map _class_data)
//其中_class_data参数的字符串应是{"requestRange": RangeRequest_type_value}, {"requestPut": PutRequest_type_value},{"requestDeleteRange": DeleteRangeRequest_type_value},{"requestTxn": TxnRequest_type_value}其中之一