Refine Degrade rule checking.
This commit is contained in:
parent
d96172cca6
commit
f144a2713f
|
|
@ -100,7 +100,7 @@ public class DegradeRule extends AbstractRule {
|
||||||
return cut;
|
return cut;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCut(boolean cut) {
|
private void setCut(boolean cut) {
|
||||||
this.cut = cut;
|
this.cut = cut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,10 +108,6 @@ public class DegradeRule extends AbstractRule {
|
||||||
return passCount;
|
return passCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPassCount(AtomicLong passCount) {
|
|
||||||
this.passCount = passCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTimeWindow() {
|
public int getTimeWindow() {
|
||||||
return timeWindow;
|
return timeWindow;
|
||||||
}
|
}
|
||||||
|
|
@ -143,12 +139,6 @@ public class DegradeRule extends AbstractRule {
|
||||||
if (grade != that.grade) {
|
if (grade != that.grade) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// if (cut != that.cut) { return false; }
|
|
||||||
//// AtomicLong dose not Override equals()
|
|
||||||
// if ((passCount == null && that.passCount != null)
|
|
||||||
// || (passCount.get() != that.passCount.get())) {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,9 +148,6 @@ public class DegradeRule extends AbstractRule {
|
||||||
result = 31 * result + new Double(count).hashCode();
|
result = 31 * result + new Double(count).hashCode();
|
||||||
result = 31 * result + timeWindow;
|
result = 31 * result + timeWindow;
|
||||||
result = 31 * result + grade;
|
result = 31 * result + grade;
|
||||||
// result = 31 * result + (cut ? 1 : 0);
|
|
||||||
// result = 31 * result + (passCount != null ? (int)passCount.get() :
|
|
||||||
// 0);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -179,6 +166,7 @@ public class DegradeRule extends AbstractRule {
|
||||||
if (grade == RuleConstant.DEGRADE_GRADE_RT) {
|
if (grade == RuleConstant.DEGRADE_GRADE_RT) {
|
||||||
double rt = clusterNode.avgRt();
|
double rt = clusterNode.avgRt();
|
||||||
if (rt < this.count) {
|
if (rt < this.count) {
|
||||||
|
passCount.set(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,11 +177,17 @@ public class DegradeRule extends AbstractRule {
|
||||||
} else {
|
} else {
|
||||||
double exception = clusterNode.exceptionQps();
|
double exception = clusterNode.exceptionQps();
|
||||||
double success = clusterNode.successQps();
|
double success = clusterNode.successQps();
|
||||||
if (success == 0) {
|
long total = clusterNode.totalQps();
|
||||||
|
// if total qps less than RT_MAX_EXCEED_N, pass.
|
||||||
|
if (total < RT_MAX_EXCEED_N) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exception / success < count) {
|
if (success == 0) {
|
||||||
|
return exception < RT_MAX_EXCEED_N;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exception / (success + exception) < count) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue