public static void main(String[] args) throws Exception { System.out.println("Connecting to KeyValue Server…"); TChannel tchannel = new TChannel.Builder("keyvalue-client").build(); setValue(tchannel, "foo", "bar"); String value = getValue(tchannel, "foo"); System.out.println(String.format("{'%s' => '%s'}", "foo", value)); try { String otherValue = getValue(tchannel, "baz"); System.out.println(String.format("{'%s' => '%s'}", "foo", otherValue)); } catch (NotFoundError e) { System.out.println(String.format("Key '%s' not found.", e.getKey())); } tchannel.shutdown(); System.out.println("Disconnected from KeyValue Server."); }
public static void setValue(TChannel tchannel, String key, String value) throws Exception { KeyValue.setValue_args setValue = new KeyValue.setValue_args(key, value); ListenableFuture<Response<KeyValue.setValue_result>> future = tchannel.callThrift( InetAddress.getLocalHost(), 8888, new Request.Builder<>(setValue, "keyvalue-service", "KeyValue::setValue").build(), KeyValue.setValue_result.class); future.get(100, TimeUnit.MILLISECONDS); }
public static String getValue(TChannel tchannel, String key) throws NotFoundError, UnknownHostException, TimeoutException, ExecutionException, InterruptedException, TChannelError { KeyValue.getValue_args getValue = new KeyValue.getValue_args(key); ListenableFuture<Response<KeyValue.getValue_result>> future = tchannel.callThrift( InetAddress.getLocalHost(), 8888, new Request.Builder<>(getValue, "keyvalue-service", "KeyValue::getValue").build(), KeyValue.getValue_result.class); Response<KeyValue.getValue_result> getResult = future.get(100, TimeUnit.MILLISECONDS); String value = getResult.getBody().getSuccess(); NotFoundError err = getResult.getBody().getNotFound(); if (value == null) { throw err; } return value; }