Add appType property field in SentinelConfig
- The `appType` can be retrieved from `csp.sentinel.app.type` field. It's useful to identify the service type (e.g. API gateway). Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
845b258b61
commit
bb4fde58b8
|
|
@ -64,4 +64,6 @@ public final class Constants {
|
||||||
* The global switch for Sentinel.
|
* The global switch for Sentinel.
|
||||||
*/
|
*/
|
||||||
public static volatile boolean ON = true;
|
public static volatile boolean ON = true;
|
||||||
|
|
||||||
|
private Constants() {}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,25 @@ import com.alibaba.csp.sentinel.util.AppNameUtil;
|
||||||
import com.alibaba.csp.sentinel.util.AssertUtil;
|
import com.alibaba.csp.sentinel.util.AssertUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The universal config of Courier. The config is retrieved from
|
* The universal local config center of Sentinel. The config is retrieved from command line arguments
|
||||||
* {@code ${user.home}/logs/csp/${appName}.properties} by default.
|
* and {@code ${user.home}/logs/csp/${appName}.properties} file by default.
|
||||||
*
|
*
|
||||||
* @author leyou
|
* @author leyou
|
||||||
|
* @author Eric Zhao
|
||||||
*/
|
*/
|
||||||
public class SentinelConfig {
|
public class SentinelConfig {
|
||||||
|
|
||||||
private static final Map<String, String> props = new ConcurrentHashMap<String, String>();
|
/**
|
||||||
|
* The default application type.
|
||||||
|
*
|
||||||
|
* @since 1.6.0
|
||||||
|
*/
|
||||||
|
public static final int APP_TYPE_COMMON = 0;
|
||||||
|
|
||||||
|
private static final Map<String, String> props = new ConcurrentHashMap<>();
|
||||||
|
private static int appType = APP_TYPE_COMMON;
|
||||||
|
|
||||||
|
public static final String APP_TYPE = "csp.sentinel.app.type";
|
||||||
public static final String CHARSET = "csp.sentinel.charset";
|
public static final String CHARSET = "csp.sentinel.charset";
|
||||||
public static final String SINGLE_METRIC_FILE_SIZE = "csp.sentinel.metric.file.single.size";
|
public static final String SINGLE_METRIC_FILE_SIZE = "csp.sentinel.metric.file.single.size";
|
||||||
public static final String TOTAL_METRIC_FILE_COUNT = "csp.sentinel.metric.file.total.count";
|
public static final String TOTAL_METRIC_FILE_COUNT = "csp.sentinel.metric.file.total.count";
|
||||||
|
|
@ -49,8 +59,32 @@ public class SentinelConfig {
|
||||||
static final int DEFAULT_STATISTIC_MAX_RT = 4900;
|
static final int DEFAULT_STATISTIC_MAX_RT = 4900;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
initialize();
|
try {
|
||||||
loadProps();
|
initialize();
|
||||||
|
loadProps();
|
||||||
|
|
||||||
|
resolveAppType();
|
||||||
|
RecordLog.info("[SentinelConfig] Application type resolved: " + appType);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
RecordLog.warn("[SentinelConfig] Failed to initialize", ex);
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void resolveAppType() {
|
||||||
|
try {
|
||||||
|
String type = getConfig(APP_TYPE);
|
||||||
|
if (type == null) {
|
||||||
|
appType = APP_TYPE_COMMON;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
appType = Integer.parseInt(type);
|
||||||
|
if (appType < 0) {
|
||||||
|
appType = APP_TYPE_COMMON;
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
appType = APP_TYPE_COMMON;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void initialize() {
|
private static void initialize() {
|
||||||
|
|
@ -135,6 +169,16 @@ public class SentinelConfig {
|
||||||
return AppNameUtil.getAppName();
|
return AppNameUtil.getAppName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get application type.
|
||||||
|
*
|
||||||
|
* @return application type, common (0) by default
|
||||||
|
* @since 1.6.0
|
||||||
|
*/
|
||||||
|
public static int getAppType() {
|
||||||
|
return appType;
|
||||||
|
}
|
||||||
|
|
||||||
public static String charset() {
|
public static String charset() {
|
||||||
return props.get(CHARSET);
|
return props.get(CHARSET);
|
||||||
}
|
}
|
||||||
|
|
@ -162,7 +206,8 @@ public class SentinelConfig {
|
||||||
public static int coldFactor() {
|
public static int coldFactor() {
|
||||||
try {
|
try {
|
||||||
int coldFactor = Integer.parseInt(props.get(COLD_FACTOR));
|
int coldFactor = Integer.parseInt(props.get(COLD_FACTOR));
|
||||||
if (coldFactor <= 1) {// check the cold factor larger than 1
|
// check the cold factor larger than 1
|
||||||
|
if (coldFactor <= 1) {
|
||||||
coldFactor = DEFAULT_COLD_FACTOR;
|
coldFactor = DEFAULT_COLD_FACTOR;
|
||||||
RecordLog.warn("cold factor=" + coldFactor + ", should be larger than 1, use default value: "
|
RecordLog.warn("cold factor=" + coldFactor + ", should be larger than 1, use default value: "
|
||||||
+ DEFAULT_COLD_FACTOR);
|
+ DEFAULT_COLD_FACTOR);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue