123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- package com.shkpr.service.proxycenter.globalcache;
- import com.shkpr.service.proxycenter.commtools.CommTool;
- import javax.validation.Validator;
- import javax.validation.ConstraintViolation;
- import javax.validation.executable.ExecutableValidator;
- import java.util.*;
- public class GlobalData {
- public final static String ORIGIN_KEY = "Y^c3b5d3z1"; //原始口令:阳春布德泽
- private boolean mBHttpStatusAlready200 = true; //HttpStatus返回码是不是总是返回200ok
- private boolean mBTokenIsUnique = false;
- private boolean mBSvrTestMode = false;
- private Validator mValidForParam = null;
- private ExecutableValidator mValidForFun = null;
- private volatile boolean mBUseLocalCache = true; //是否启用本地缓存
- private String mStrServerId = ""; //本服务的ID
- private int mNOwnerMachineIndex = 0; //本服务所在的部署机器的索引编号
- private int mNOwnerServiceIndex = 0; //本服务在部署机器上的服务索引编号
- private int mNCpuCoresForEnableAsyncSubTask = 8;//启动异步子任务的最小cpu核心数
- private volatile boolean mBSwitchTraceLog = true;//是否开启基于TraceId的日志记录
- private String mStrOperatorAccount = "";
- private String mStrOperatorPassword = "";
- private Map<String, String> proxyToAddress = new HashMap<>();
- private Map<String, String> proxyToPassword = new HashMap<>();
- private Map<String, String> proxyToUri = new HashMap<>();
- private long mTmUTCServiceOnline = 1580486400000L; //服务上线的时间,默认为2020-02-01 00:00:00
- private String mStrInternalCallPassword = ""; //本机的内部通信可信任口令
- private static volatile GlobalData msInstance = null;
- public static GlobalData getInstance(){
- if (msInstance == null){
- synchronized (GlobalData.class){
- if (msInstance == null)
- msInstance = new GlobalData();
- }
- }
- return msInstance;
- }
- private GlobalData() {
- }
- public void setCpuCoresForEnableAsyncSubTask(int nCpuCores){
- this.mNCpuCoresForEnableAsyncSubTask = nCpuCores;
- }
- public boolean isEnableAsyncSubTask(){
- //cpu核心数>=指定配置时才启用异步子任务(注:过多线程并发可增加线程间的切换开销,导致单个请求执行时间拉长)
- return mNCpuCores >= mNCpuCoresForEnableAsyncSubTask;
- }
- private int mNCpuCores = 1;
- public int getCpuCores() {
- return mNCpuCores;
- }
- public void setCpuCores(int mNCpuCores) {
- this.mNCpuCores = mNCpuCores;
- }
- public <T> boolean checkObjectByValidator(T object, Class<?>... classForObject){
- if (mValidForParam != null){
- Set<ConstraintViolation<T>> constraintViolations = mValidForParam.validate(object, classForObject);
- if (!(constraintViolations == null || constraintViolations.size() <= 0))
- return false;
- }
- return true;
- }
- public Validator getValidForParam() {
- return mValidForParam;
- }
- public void setValidForParam(Validator mValidForParam) {
- this.mValidForParam = mValidForParam;
- }
- public ExecutableValidator getValidForFun() {
- return mValidForFun;
- }
- public void setValidForFun(ExecutableValidator mValidForFun) {
- this.mValidForFun = mValidForFun;
- }
- public boolean isTokenMustUnique() {
- return mBTokenIsUnique;
- }
- public void setTokenMustUnique(boolean mBTokenIsUnique) {
- this.mBTokenIsUnique = mBTokenIsUnique;
- }
- public boolean isSvrTestMode() {
- return mBSvrTestMode;
- }
- public void setSvrTestMode(boolean mBSvrTestMode) {
- this.mBSvrTestMode = mBSvrTestMode;
- }
- public boolean isHttpStatusAlready200() {
- return mBHttpStatusAlready200;
- }
- public void setHttpStatusAlready200(boolean mBHttpStatusAlready200) {
- this.mBHttpStatusAlready200 = mBHttpStatusAlready200;
- }
- public boolean isUseLocalCache() { return mBUseLocalCache; }
- public void setUseLocalCache(boolean mBUseLocalCache) { this.mBUseLocalCache = mBUseLocalCache; }
- public String getServerId() { return mStrServerId; }
- public void setServerId(String mStrServerId) { this.mStrServerId = mStrServerId; }
- public int getNOwnerMachineIndex() { return mNOwnerMachineIndex; }
- public void setNOwnerMachineIndex(int mNOwnerMachineIndex) { this.mNOwnerMachineIndex = mNOwnerMachineIndex; }
- public int getNOwnerServiceIndex() { return mNOwnerServiceIndex; }
- public void setNOwnerServiceIndex(int mNOwnerServiceIndex) { this.mNOwnerServiceIndex = mNOwnerServiceIndex; }
- public boolean isSwitchTraceLog() { return mBSwitchTraceLog; }
- public void setSwitchTraceLog(boolean mBSwitchTraceLog) { this.mBSwitchTraceLog = mBSwitchTraceLog; }
- public String getStrOperatorAccount() { return mStrOperatorAccount; }
- public void setStrOperatorAccount(String mStrOperatorAccount) { this.mStrOperatorAccount = mStrOperatorAccount; }
- public String getStrOperatorPassword() { return mStrOperatorPassword; }
- public void setStrOperatorPassword(String mStrOperatorPassword) { this.mStrOperatorPassword = mStrOperatorPassword; }
- public String getInternalCallPassword() { return mStrInternalCallPassword; }
- public void setInternalCallPassword(String mStrInternalCallPassword) { this.mStrInternalCallPassword = mStrInternalCallPassword; }
- public Map<String, String> getProxyToAddress() {
- return proxyToAddress;
- }
- public void initProxyToAddress(Map<String, String> proxyToAddress) {
- this.proxyToAddress.clear();
- if (CommTool.mapSize(proxyToAddress) > 0)
- this.proxyToAddress.putAll(proxyToAddress);
- }
- public Map<String, String> getProxyToPassword() {
- return proxyToPassword;
- }
- public void initProxyToPassword(Map<String, String> proxyToPassword) {
- this.proxyToPassword.clear();
- if (CommTool.mapSize(proxyToPassword) > 0)
- this.proxyToPassword.putAll(proxyToPassword);
- }
- public Map<String, String> getProxyToUri() {
- return proxyToUri;
- }
- public void initProxyToUri(Map<String, String> proxyToUri) {
- this.proxyToUri.clear();
- if (CommTool.mapSize(proxyToUri) > 0)
- this.proxyToUri.putAll(proxyToUri);
- }
- }
|