序
本文主要研究一下 consul 的 NewService
NewService
consul-api-1.4.1-sources.jar!/com/ecwid/consul/v1/agent/model/NewService.java
public class NewService {@SerializedName("ID")
private String id;
@SerializedName("Name")
private String name;
@SerializedName("Tags")
private List<String> tags;
@SerializedName("Address")
private String address;
@SerializedName("Meta")
private Map<String, String> meta;
@SerializedName("Port")
private Integer port;
@SerializedName("EnableTagOverride")
private Boolean enableTagOverride;
@SerializedName("Check")
private Check check;
@SerializedName("Checks")
private List<Check> checks;
public String getId() {return id;}
public void setId(String id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public List<String> getTags() {return tags;}
public void setTags(List<String> tags) {this.tags = tags;}
public String getAddress() {return address;}
public void setAddress(String address) {this.address = address;}
public Map<String, String> getMeta() {return meta;}
public void setMeta(Map<String, String> meta) {this.meta = meta;}
public Integer getPort() {return port;}
public void setPort(Integer port) {this.port = port;}
public Boolean getEnableTagOverride() {return enableTagOverride;}
public void setEnableTagOverride(Boolean enableTagOverride) {this.enableTagOverride = enableTagOverride;}
public Check getCheck() {return check;}
public void setCheck(Check check) {this.check = check;}
public List<Check> getChecks() {return checks;}
public void setChecks(List<Check> checks) {this.checks = checks;}
@Override
public String toString() {
return "NewService{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", tags=" + tags +
", address='" + address + '\'' +
", meta=" + meta +
", port=" + port +
", enableTagOverride=" + enableTagOverride +
", check=" + check +
", checks=" + checks +
'}';
}
}
- NewService 定义了 id、name、tags、address、meta、port、enableTagOverride、check、checks 属性
NewService.Check
consul-api-1.4.1-sources.jar!/com/ecwid/consul/v1/agent/model/NewService.java
public static class Check {@SerializedName("Script")
private String script;
@SerializedName("Interval")
private String interval;
@SerializedName("TTL")
private String ttl;
@SerializedName("HTTP")
private String http;
@SerializedName("Method")
private String method;
@SerializedName("Header")
private Map<String, List<String>> header;
@SerializedName("TCP")
private String tcp;
@SerializedName("Timeout")
private String timeout;
@SerializedName("DeregisterCriticalServiceAfter")
private String deregisterCriticalServiceAfter;
@SerializedName("TLSSkipVerify")
private Boolean tlsSkipVerify;
@SerializedName("Status")
private String status;
public String getScript() {return script;}
public void setScript(String script) {this.script = script;}
public String getInterval() {return interval;}
public void setInterval(String interval) {this.interval = interval;}
public String getTtl() {return ttl;}
public void setTtl(String ttl) {this.ttl = ttl;}
public String getHttp() {return http;}
public void setHttp(String http) {this.http = http;}
public String getMethod() {return method;}
public void setMethod(String method) {this.method = method;}
public Map<String, List<String>> getHeader() {return header;}
public void setHeader(Map<String, List<String>> header) {this.header = header;}
public String getTcp() {return tcp;}
public void setTcp(String tcp) {this.tcp = tcp;}
public String getTimeout() {return timeout;}
public void setTimeout(String timeout) {this.timeout = timeout;}
public String getDeregisterCriticalServiceAfter() {return deregisterCriticalServiceAfter;}
public void setDeregisterCriticalServiceAfter(String deregisterCriticalServiceAfter) {this.deregisterCriticalServiceAfter = deregisterCriticalServiceAfter;}
public Boolean getTlsSkipVerify() {return tlsSkipVerify;}
public void setTlsSkipVerify(Boolean tlsSkipVerify) {this.tlsSkipVerify = tlsSkipVerify;}
public String getStatus() {return status;}
public void setStatus(String status) {this.status = status;}
@Override
public String toString() {
return "Check{" +
"script='" + script + '\'' +
", interval='" + interval + '\'' +
", ttl='" + ttl + '\'' +
", http='" + http + '\'' +
", method='" + method + '\'' +
", header=" + header +
", tcp='" + tcp + '\'' +
", timeout='" + timeout + '\'' +
", deregisterCriticalServiceAfter='" + deregisterCriticalServiceAfter + '\'' +
", tlsSkipVerify=" + tlsSkipVerify +
", status='" + status + '\'' +
'}';
}
}
- NewService.Check 定义了 script、interval、ttl、http、method、header、tcp、timeout、deregisterCriticalServiceAfter、tlsSkipVerify、status 属性
AgentConsulClient
consul-api-1.4.1-sources.jar!/com/ecwid/consul/v1/agent/AgentConsulClient.java
public final class AgentConsulClient implements AgentClient {
private final ConsulRawClient rawClient;
//......
public Response<Void> agentServiceRegister(NewService newService) {return agentServiceRegister(newService, null);
}
public Response<Void> agentServiceRegister(NewService newService, String token) {UrlParameters tokenParam = token != null ? new SingleUrlParameters("token", token) : null;
String json = GsonFactory.getGson().toJson(newService);
RawResponse rawResponse = rawClient.makePutRequest("/v1/agent/service/register", json, tokenParam);
if (rawResponse.getStatusCode() == 200) {return new Response<Void>(null, rawResponse);
} else {throw new OperationException(rawResponse);
}
}
//......
}
- AgentConsulClient 的 agentServiceRegister 方法使用 rawClient 向
/v1/agent/service/register
这个 url 发送 put 请求,把 newService 的 json 数据发送过去
小结
- NewService 定义了 id、name、tags、address、meta、port、enableTagOverride、check、checks 属性
- NewService.Check 定义了 script、interval、ttl、http、method、header、tcp、timeout、deregisterCriticalServiceAfter、tlsSkipVerify、status 属性
- AgentConsulClient 的 agentServiceRegister 方法使用 rawClient 向
/v1/agent/service/register
这个 url 发送 put 请求,把 newService 的 json 数据发送过去
doc
- NewService