public GetResponse Get(ByteSequence key, GetOption option) { Etcdserverpb.RangeRequest request = new Etcdserverpb.RangeRequest(); request.Key = key.GetByteString(); request.KeysOnly = option.IsCountOnly(); request.Limit = option.GetLimit(); request.Revision = option.GetRevision(); request.KeysOnly = option.IsKeysOnly(); request.Serializable = option.isSerializable(); request.SortOrder = OptionsUtil.ToRangeRequestSortOrder(option.GetSortOrder()); request.SortTarget = OptionsUtil.ToRangeRequestSortTarget(option.GetSortField()); if (option.GetEndKey() != null) { request.RangeEnd = option.GetEndKey().GetByteString(); } var rsp = kVClient.Range(request); GetResponse response = new GetResponse(rsp); return(response); //return Util.ToCompletableFutureWithRetry( // stub.Range(request), // new FunctionResponse<Etcdserverpb.RangeRequest, GetResponse>(), // Util.IsRetriable //); }
public string GetServer(string ServiceName, bool needWatch = true) { Google.Protobuf.ByteString key = Google.Protobuf.ByteString.CopyFromUtf8($"/EtcdDiscovery/{ServiceName}"); var req = new Etcdserverpb.RangeRequest() { Key = key }; var result = _client.GetAsync(ServiceName).Result; if (result.Kvs != null && result.Kvs.Count > 0) { lock (klst) { if (needWatch && klst.Contains(key)) { klst.Add(key); } } return(result.Kvs[0].Value.ToStringUtf8()); } else { return(null); } }