/**
* Copyright 2016 vip.com.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package com.vip.saturn.job.reg.zookeeper;
import com.google.common.base.Strings;
import com.vip.saturn.job.reg.base.AbstractRegistryCenterConfiguration;
/**
* 基于Zookeeper的注册中心配置.
*
*
*/
public class ZookeeperConfiguration extends AbstractRegistryCenterConfiguration {
/**
* 连接Zookeeper服务器的列表.
* 包括IP地址和端口号.
* 多个地址用逗号分隔.
* 如: host1:2181,host2:2181
*/
private String serverLists;
/**
* 命名空间.
*/
private String namespace;
/**
* 等待重试的间隔时间的初始值.
* 单位毫秒.
*/
private int baseSleepTimeMilliseconds;
/**
* 等待重试的间隔时间的最大值.
* 单位毫秒.
*/
private int maxSleepTimeMilliseconds;
/**
* 最大重试次数.
*/
private int maxRetries;
/**
* 会话超时时间.
* 单位毫秒.
*/
private int sessionTimeoutMilliseconds;
/**
* 连接超时时间.
* 单位毫秒.
*/
private int connectionTimeoutMilliseconds;
/**
* 连接Zookeeper的权限令牌.
* 缺省为不需要权限验证.
*/
private String digest;
/**
* 内嵌Zookeeper的端口号.
* -1表示不开启内嵌Zookeeper.
*/
private int nestedPort = -1;
/**
* 内嵌Zookeeper的数据存储路径.
* 为空表示不开启内嵌Zookeeper.
*/
private String nestedDataDir;
public ZookeeperConfiguration(){
}
/**
* 包含了必需属性的构造器.
*
* @param serverLists 连接Zookeeper服务器的列表
* @param namespace 命名空间
* @param baseSleepTimeMilliseconds 等待重试的间隔时间的初始值
* @param maxSleepTimeMilliseconds 等待重试的间隔时间的最大值
* @param maxRetries 最大重试次数
*/
public ZookeeperConfiguration(final String serverLists, final String namespace, final int baseSleepTimeMilliseconds, final int maxSleepTimeMilliseconds, final int maxRetries) {
this.serverLists = serverLists;
this.namespace = namespace;
this.baseSleepTimeMilliseconds = baseSleepTimeMilliseconds;
this.maxSleepTimeMilliseconds = maxSleepTimeMilliseconds;
this.maxRetries = maxRetries;
}
/**
* 判断是否需要开启内嵌Zookeeper.
*
* @return 是否需要开启内嵌Zookeeper
*/
public boolean isUseNestedZookeeper() {
return -1 != nestedPort && !Strings.isNullOrEmpty(nestedDataDir);
}
public String getServerLists() {
return serverLists;
}
public void setServerLists(String serverLists) {
this.serverLists = serverLists;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
public int getBaseSleepTimeMilliseconds() {
return baseSleepTimeMilliseconds;
}
public void setBaseSleepTimeMilliseconds(int baseSleepTimeMilliseconds) {
this.baseSleepTimeMilliseconds = baseSleepTimeMilliseconds;
}
public int getMaxSleepTimeMilliseconds() {
return maxSleepTimeMilliseconds;
}
public void setMaxSleepTimeMilliseconds(int maxSleepTimeMilliseconds) {
this.maxSleepTimeMilliseconds = maxSleepTimeMilliseconds;
}
public int getMaxRetries() {
return maxRetries;
}
public void setMaxRetries(int maxRetries) {
this.maxRetries = maxRetries;
}
public int getSessionTimeoutMilliseconds() {
return sessionTimeoutMilliseconds;
}
public void setSessionTimeoutMilliseconds(int sessionTimeoutMilliseconds) {
this.sessionTimeoutMilliseconds = sessionTimeoutMilliseconds;
}
public int getConnectionTimeoutMilliseconds() {
return connectionTimeoutMilliseconds;
}
public void setConnectionTimeoutMilliseconds(int connectionTimeoutMilliseconds) {
this.connectionTimeoutMilliseconds = connectionTimeoutMilliseconds;
}
public String getDigest() {
return digest;
}
public void setDigest(String digest) {
this.digest = digest;
}
public int getNestedPort() {
return nestedPort;
}
public void setNestedPort(int nestedPort) {
this.nestedPort = nestedPort;
}
public String getNestedDataDir() {
return nestedDataDir;
}
public void setNestedDataDir(String nestedDataDir) {
this.nestedDataDir = nestedDataDir;
}
}