mirror of https://github.com/apache/lucene.git
zkController: try to simplify all the addresses/urls, precompute some also
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1293934 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
85013ffd31
commit
fced47d33f
|
@ -100,14 +100,15 @@ public final class ZkController {
|
||||||
|
|
||||||
private LeaderElector leaderElector;
|
private LeaderElector leaderElector;
|
||||||
|
|
||||||
private String zkServerAddress;
|
private String zkServerAddress; // example: 127.0.0.1:54062/solr
|
||||||
|
|
||||||
private String localHostPort;
|
private final String localHostPort; // example: 54065
|
||||||
private String localHostContext;
|
private final String localHostContext; // example: solr
|
||||||
private String localHostName;
|
private final String localHost; // example: http://127.0.0.1
|
||||||
private String localHost;
|
private final String hostName; // example: 127.0.0.1
|
||||||
|
private final String nodeName; // example: 127.0.0.1:54065_solr
|
||||||
|
private final String baseURL; // example: http://127.0.0.1:54065/solr
|
||||||
|
|
||||||
private String hostName;
|
|
||||||
|
|
||||||
private LeaderElector overseerElector;
|
private LeaderElector overseerElector;
|
||||||
|
|
||||||
|
@ -172,7 +173,10 @@ public final class ZkController {
|
||||||
this.zkServerAddress = zkServerAddress;
|
this.zkServerAddress = zkServerAddress;
|
||||||
this.localHostPort = locaHostPort;
|
this.localHostPort = locaHostPort;
|
||||||
this.localHostContext = localHostContext;
|
this.localHostContext = localHostContext;
|
||||||
this.localHost = localHost;
|
this.localHost = getHostAddress(localHost);
|
||||||
|
this.hostName = getHostNameFromAddress(this.localHost);
|
||||||
|
this.nodeName = this.hostName + ':' + this.localHostPort + '_' + this.localHostContext;
|
||||||
|
this.baseURL = this.localHost + ":" + this.localHostPort + "/" + this.localHostContext;
|
||||||
|
|
||||||
zkClient = new SolrZkClient(zkServerAddress, zkClientTimeout, zkClientConnectTimeout,
|
zkClient = new SolrZkClient(zkServerAddress, zkClientTimeout, zkClientConnectTimeout,
|
||||||
// on reconnect, reload cloud info
|
// on reconnect, reload cloud info
|
||||||
|
@ -300,23 +304,38 @@ public final class ZkController {
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: consider how this is done
|
// normalize host to url_prefix://host
|
||||||
private String getHostAddress() throws IOException {
|
// input can be null, host, or url_prefix://host
|
||||||
|
private String getHostAddress(String host) throws IOException {
|
||||||
|
|
||||||
if (localHost == null) {
|
if (host == null) {
|
||||||
localHost = "http://" + InetAddress.getLocalHost().getHostName();
|
host = "http://" + InetAddress.getLocalHost().getHostName();
|
||||||
} else {
|
} else {
|
||||||
Matcher m = URL_PREFIX.matcher(localHost);
|
Matcher m = URL_PREFIX.matcher(host);
|
||||||
if (m.matches()) {
|
if (m.matches()) {
|
||||||
String prefix = m.group(1);
|
String prefix = m.group(1);
|
||||||
localHost = prefix + localHost;
|
host = prefix + host;
|
||||||
} else {
|
} else {
|
||||||
localHost = "http://" + localHost;
|
host = "http://" + host;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return localHost;
|
return host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// extract host from url_prefix://host
|
||||||
|
private String getHostNameFromAddress(String addr) {
|
||||||
|
Matcher m = URL_POST.matcher(addr);
|
||||||
|
if (m.matches()) {
|
||||||
|
return m.group(1);
|
||||||
|
} else {
|
||||||
|
log.error("Unrecognized host:" + addr);
|
||||||
|
throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
|
||||||
|
"Unrecognized host:" + addr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getHostName() {
|
public String getHostName() {
|
||||||
return hostName;
|
return hostName;
|
||||||
|
@ -336,17 +355,6 @@ public final class ZkController {
|
||||||
private void init() {
|
private void init() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
localHostName = getHostAddress();
|
|
||||||
Matcher m = URL_POST.matcher(localHostName);
|
|
||||||
|
|
||||||
if (m.matches()) {
|
|
||||||
hostName = m.group(1);
|
|
||||||
} else {
|
|
||||||
log.error("Unrecognized host:" + localHostName);
|
|
||||||
throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR,
|
|
||||||
"Unrecognized host:" + localHostName);
|
|
||||||
}
|
|
||||||
|
|
||||||
// makes nodes zkNode
|
// makes nodes zkNode
|
||||||
cmdExecutor.ensureExists(ZkStateReader.LIVE_NODES_ZKNODE, zkClient);
|
cmdExecutor.ensureExists(ZkStateReader.LIVE_NODES_ZKNODE, zkClient);
|
||||||
|
|
||||||
|
@ -440,7 +448,7 @@ public final class ZkController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNodeName() {
|
public String getNodeName() {
|
||||||
return hostName + ":" + localHostPort + "_" + localHostContext;
|
return nodeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -694,8 +702,7 @@ public final class ZkController {
|
||||||
|
|
||||||
|
|
||||||
public String getBaseUrl() {
|
public String getBaseUrl() {
|
||||||
final String baseUrl = localHostName + ":" + localHostPort + "/" + localHostContext;
|
return baseURL;
|
||||||
return baseUrl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue