引入依赖
compile group: 'com.orbitz.consul', name: 'consul-client', version: '1.2.0'
HostAndPort consulUrl = HostAndPort.fromParts("127.0.0.1",8500);
Consul consul = Consul.builder().withHostAndPort(consulUrl).build();
KeyValueClient keyValueClient = consul.keyValueClient();
JSONObject o = JSON.parseObject(keyValueClient.getValue(key).get().getValueAsString().get());
o.getIntValue("abc") ......
/**
* Build a HostAndPort instance from separate host and port values.
*
* <p>Note: Non-bracketed IPv6 literals are allowed. Use {@link #requireBracketsForIPv6()} to
* prohibit these.
*
* @param host the host string to parse. Must not contain a port number.
* @param port a port number from [0..65535]
* @return if parsing was successful, a populated HostAndPort object.
* @throws IllegalArgumentException if {@code host} contains a port number, or {@code port} is out
* of range.
*/
public static HostAndPort fromParts(String host, int port) {
checkArgument(isValidPort(port), "Port out of range: %s", port);
HostAndPort parsedHost = fromString(host);
checkArgument(!parsedHost.hasPort(), "Host has a port: %s", host);
return new HostAndPort(parsedHost.host, port, parsedHost.hasBracketlessColons);
}
/**
* Sets the URL from a {@link HostAndPort} object.
*
* @param hostAndPort The Consul agent host and port.
* @return The builder.
*/
public Builder withHostAndPort(HostAndPort hostAndPort) {
try {
this.url = new URL("http", hostAndPort.getHost(), hostAndPort.getPort(), "");
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
return this;
}
/**
* Get the Key/Value HTTP client.
* <p>
* /v1/kv
*
* @return The Key/Value HTTP client.
*/
public KeyValueClient keyValueClient() {
return keyValueClient;
}