GlobalData.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package com.shkpr.service.proxycenter.globalcache;
  2. import com.shkpr.service.proxycenter.commtools.CommTool;
  3. import javax.validation.Validator;
  4. import javax.validation.ConstraintViolation;
  5. import javax.validation.executable.ExecutableValidator;
  6. import java.util.*;
  7. public class GlobalData {
  8. public final static String ORIGIN_KEY = "Y^c3b5d3z1"; //原始口令:阳春布德泽
  9. private boolean mBHttpStatusAlready200 = true; //HttpStatus返回码是不是总是返回200ok
  10. private boolean mBTokenIsUnique = false;
  11. private boolean mBSvrTestMode = false;
  12. private Validator mValidForParam = null;
  13. private ExecutableValidator mValidForFun = null;
  14. private volatile boolean mBUseLocalCache = true; //是否启用本地缓存
  15. private String mStrServerId = ""; //本服务的ID
  16. private int mNOwnerMachineIndex = 0; //本服务所在的部署机器的索引编号
  17. private int mNOwnerServiceIndex = 0; //本服务在部署机器上的服务索引编号
  18. private int mNCpuCoresForEnableAsyncSubTask = 8;//启动异步子任务的最小cpu核心数
  19. private volatile boolean mBSwitchTraceLog = true;//是否开启基于TraceId的日志记录
  20. private String mStrOperatorAccount = "";
  21. private String mStrOperatorPassword = "";
  22. private Map<String, String> proxyToAddress = new HashMap<>();
  23. private Map<String, String> proxyToPassword = new HashMap<>();
  24. private Map<String, String> proxyToUri = new HashMap<>();
  25. private long mTmUTCServiceOnline = 1580486400000L; //服务上线的时间,默认为2020-02-01 00:00:00
  26. private String mStrInternalCallPassword = ""; //本机的内部通信可信任口令
  27. private static volatile GlobalData msInstance = null;
  28. public static GlobalData getInstance(){
  29. if (msInstance == null){
  30. synchronized (GlobalData.class){
  31. if (msInstance == null)
  32. msInstance = new GlobalData();
  33. }
  34. }
  35. return msInstance;
  36. }
  37. private GlobalData() {
  38. }
  39. public void setCpuCoresForEnableAsyncSubTask(int nCpuCores){
  40. this.mNCpuCoresForEnableAsyncSubTask = nCpuCores;
  41. }
  42. public boolean isEnableAsyncSubTask(){
  43. //cpu核心数>=指定配置时才启用异步子任务(注:过多线程并发可增加线程间的切换开销,导致单个请求执行时间拉长)
  44. return mNCpuCores >= mNCpuCoresForEnableAsyncSubTask;
  45. }
  46. private int mNCpuCores = 1;
  47. public int getCpuCores() {
  48. return mNCpuCores;
  49. }
  50. public void setCpuCores(int mNCpuCores) {
  51. this.mNCpuCores = mNCpuCores;
  52. }
  53. public <T> boolean checkObjectByValidator(T object, Class<?>... classForObject){
  54. if (mValidForParam != null){
  55. Set<ConstraintViolation<T>> constraintViolations = mValidForParam.validate(object, classForObject);
  56. if (!(constraintViolations == null || constraintViolations.size() <= 0))
  57. return false;
  58. }
  59. return true;
  60. }
  61. public Validator getValidForParam() {
  62. return mValidForParam;
  63. }
  64. public void setValidForParam(Validator mValidForParam) {
  65. this.mValidForParam = mValidForParam;
  66. }
  67. public ExecutableValidator getValidForFun() {
  68. return mValidForFun;
  69. }
  70. public void setValidForFun(ExecutableValidator mValidForFun) {
  71. this.mValidForFun = mValidForFun;
  72. }
  73. public boolean isTokenMustUnique() {
  74. return mBTokenIsUnique;
  75. }
  76. public void setTokenMustUnique(boolean mBTokenIsUnique) {
  77. this.mBTokenIsUnique = mBTokenIsUnique;
  78. }
  79. public boolean isSvrTestMode() {
  80. return mBSvrTestMode;
  81. }
  82. public void setSvrTestMode(boolean mBSvrTestMode) {
  83. this.mBSvrTestMode = mBSvrTestMode;
  84. }
  85. public boolean isHttpStatusAlready200() {
  86. return mBHttpStatusAlready200;
  87. }
  88. public void setHttpStatusAlready200(boolean mBHttpStatusAlready200) {
  89. this.mBHttpStatusAlready200 = mBHttpStatusAlready200;
  90. }
  91. public boolean isUseLocalCache() { return mBUseLocalCache; }
  92. public void setUseLocalCache(boolean mBUseLocalCache) { this.mBUseLocalCache = mBUseLocalCache; }
  93. public String getServerId() { return mStrServerId; }
  94. public void setServerId(String mStrServerId) { this.mStrServerId = mStrServerId; }
  95. public int getNOwnerMachineIndex() { return mNOwnerMachineIndex; }
  96. public void setNOwnerMachineIndex(int mNOwnerMachineIndex) { this.mNOwnerMachineIndex = mNOwnerMachineIndex; }
  97. public int getNOwnerServiceIndex() { return mNOwnerServiceIndex; }
  98. public void setNOwnerServiceIndex(int mNOwnerServiceIndex) { this.mNOwnerServiceIndex = mNOwnerServiceIndex; }
  99. public boolean isSwitchTraceLog() { return mBSwitchTraceLog; }
  100. public void setSwitchTraceLog(boolean mBSwitchTraceLog) { this.mBSwitchTraceLog = mBSwitchTraceLog; }
  101. public String getStrOperatorAccount() { return mStrOperatorAccount; }
  102. public void setStrOperatorAccount(String mStrOperatorAccount) { this.mStrOperatorAccount = mStrOperatorAccount; }
  103. public String getStrOperatorPassword() { return mStrOperatorPassword; }
  104. public void setStrOperatorPassword(String mStrOperatorPassword) { this.mStrOperatorPassword = mStrOperatorPassword; }
  105. public String getInternalCallPassword() { return mStrInternalCallPassword; }
  106. public void setInternalCallPassword(String mStrInternalCallPassword) { this.mStrInternalCallPassword = mStrInternalCallPassword; }
  107. public Map<String, String> getProxyToAddress() {
  108. return proxyToAddress;
  109. }
  110. public void initProxyToAddress(Map<String, String> proxyToAddress) {
  111. this.proxyToAddress.clear();
  112. if (CommTool.mapSize(proxyToAddress) > 0)
  113. this.proxyToAddress.putAll(proxyToAddress);
  114. }
  115. public Map<String, String> getProxyToPassword() {
  116. return proxyToPassword;
  117. }
  118. public void initProxyToPassword(Map<String, String> proxyToPassword) {
  119. this.proxyToPassword.clear();
  120. if (CommTool.mapSize(proxyToPassword) > 0)
  121. this.proxyToPassword.putAll(proxyToPassword);
  122. }
  123. public Map<String, String> getProxyToUri() {
  124. return proxyToUri;
  125. }
  126. public void initProxyToUri(Map<String, String> proxyToUri) {
  127. this.proxyToUri.clear();
  128. if (CommTool.mapSize(proxyToUri) > 0)
  129. this.proxyToUri.putAll(proxyToUri);
  130. }
  131. }