in ons-core/ons-client/src/main/java/org/apache/rocketmq/ons/api/impl/rocketmq/ONSClientAbstract.java [72:118]
public ONSClientAbstract(Properties properties) {
this.properties = properties;
this.sessionCredentials.updateContent(properties);
if (this.sessionCredentials.getOnsChannel().equals(ONSChannel.ALIYUN) &&
(null == this.sessionCredentials.getAccessKey() || "".equals(this.sessionCredentials.getAccessKey()))) {
throw new ONSClientException("please set access key");
}
if (this.sessionCredentials.getOnsChannel().equals(ONSChannel.ALIYUN) &&
(null == this.sessionCredentials.getSecretKey() || "".equals(this.sessionCredentials.getSecretKey()))) {
throw new ONSClientException("please set secret key");
}
if (null == this.sessionCredentials.getOnsChannel()) {
throw new ONSClientException("please set ons channel");
}
this.nameServerAddr = getNameSrvAddrFromProperties();
if (nameServerAddr != null) {
return;
}
if (nameServerAddr == null && !this.sessionCredentials.getOnsChannel().equals(ONSChannel.ALIYUN)) {
return;
}
this.nameServerAddr = fetchNameServerAddr();
if (null == nameServerAddr) {
throw new ONSClientException(FAQ.errorMessage("Can not find name server, May be your network problem.", FAQ.FIND_NS_FAILED));
}
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
String nsAddrs = fetchNameServerAddr();
if (nsAddrs != null && !ONSClientAbstract.this.nameServerAddr.equals(nsAddrs)) {
ONSClientAbstract.this.nameServerAddr = nsAddrs;
if (isStarted()) {
updateNameServerAddr(nsAddrs);
}
}
} catch (Exception e) {
LOGGER.error("update name server periodically failed.", e);
}
}
}, 10 * 1000L, 90 * 1000L, TimeUnit.MILLISECONDS);
}