diff --git a/fizz-core/src/main/java/we/filter/FlowControlFilter.java b/fizz-core/src/main/java/we/filter/FlowControlFilter.java index 8bfc509..637abdf 100644 --- a/fizz-core/src/main/java/we/filter/FlowControlFilter.java +++ b/fizz-core/src/main/java/we/filter/FlowControlFilter.java @@ -325,7 +325,8 @@ public class FlowControlFilter extends FizzWebFilter { StringBuilder b = ThreadContext.getStringBuilder(); if (hasHost) { - String resourceId = ResourceIdUtils.buildResourceId(app, ip, node, service, path); + // String resourceId = ResourceIdUtils.buildResourceId(app, ip, node, service, path); + String resourceId = ResourceIdUtils.buildResourceId(null, null, node, null, null); ResourceConfig resourceConfig = new ResourceConfig(resourceId, 0, 0); resourceConfigs.add(resourceConfig); } diff --git a/fizz-core/src/main/java/we/stats/FlowStat.java b/fizz-core/src/main/java/we/stats/FlowStat.java index d621099..306fc9b 100644 --- a/fizz-core/src/main/java/we/stats/FlowStat.java +++ b/fizz-core/src/main/java/we/stats/FlowStat.java @@ -197,7 +197,7 @@ public class FlowStat { // increase request and concurrent request for (ResourceConfig resourceConfig : resourceConfigs) { ResourceStat resourceStat = getResourceStat(resourceConfig.getResourceId()); - long cons = resourceStat.getConcurrentRequests().incrementAndGet(); + int cons = resourceStat.getConcurrentRequests().incrementAndGet(); resourceStat.getTimeSlot(curTimeSlotId).updatePeakConcurrentReqeusts(cons); resourceStat.getTimeSlot(curTimeSlotId).incr(); } @@ -276,7 +276,7 @@ public class FlowStat { // increase request and concurrent request for (ResourceConfig resourceConfig : resourceConfigs) { ResourceStat resourceStat = getResourceStat(resourceConfig.getResourceId()); - long cons = resourceStat.getConcurrentRequests().incrementAndGet(); + int cons = resourceStat.getConcurrentRequests().incrementAndGet(); resourceStat.getTimeSlot(curTimeSlotId).updatePeakConcurrentReqeusts(cons); resourceStat.getTimeSlot(curTimeSlotId).incr(); } diff --git a/fizz-core/src/main/java/we/stats/ResourceStat.java b/fizz-core/src/main/java/we/stats/ResourceStat.java index 5f70eca..55ce2b7 100644 --- a/fizz-core/src/main/java/we/stats/ResourceStat.java +++ b/fizz-core/src/main/java/we/stats/ResourceStat.java @@ -20,6 +20,7 @@ package we.stats; import java.math.BigDecimal; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -50,7 +51,8 @@ public class ResourceStat { /** * Concurrent requests */ - private AtomicLong concurrentRequests = new AtomicLong(0); +// private AtomicLong concurrentRequests = new AtomicLong(0); + private AtomicInteger concurrentRequests = new AtomicInteger(0); private ReentrantReadWriteLock rwl1 = new ReentrantReadWriteLock(); private ReentrantReadWriteLock rwl2 = new ReentrantReadWriteLock(); @@ -95,16 +97,16 @@ public class ResourceStat { try { boolean isExceeded = false; if (maxCon != null && maxCon.intValue() > 0) { - long n = this.concurrentRequests.get(); + int n = this.concurrentRequests.get(); if (n >= maxCon.longValue()) { isExceeded = true; this.incrBlockRequestToTimeSlot(timeSlotId); } else { - long conns = this.concurrentRequests.incrementAndGet(); + int conns = this.concurrentRequests.incrementAndGet(); this.getTimeSlot(timeSlotId).updatePeakConcurrentReqeusts(conns); } } else { - long conns = this.concurrentRequests.incrementAndGet(); + int conns = this.concurrentRequests.incrementAndGet(); this.getTimeSlot(timeSlotId).updatePeakConcurrentReqeusts(conns); } return !isExceeded; @@ -118,7 +120,7 @@ public class ResourceStat { * */ public void decrConcurrentRequest(long timeSlotId) { - long conns = this.concurrentRequests.decrementAndGet(); + int conns = this.concurrentRequests.decrementAndGet(); this.getTimeSlot(timeSlotId).updatePeakConcurrentReqeusts(conns); } @@ -335,11 +337,11 @@ public class ResourceStat { this.timeSlots = timeSlots; } - public AtomicLong getConcurrentRequests() { + public AtomicInteger getConcurrentRequests() { return concurrentRequests; } - public void setConcurrentRequests(AtomicLong concurrentRequests) { + public void setConcurrentRequests(AtomicInteger concurrentRequests) { this.concurrentRequests = concurrentRequests; } } diff --git a/fizz-core/src/main/java/we/stats/TimeSlot.java b/fizz-core/src/main/java/we/stats/TimeSlot.java index 642a6c7..fc3c53f 100644 --- a/fizz-core/src/main/java/we/stats/TimeSlot.java +++ b/fizz-core/src/main/java/we/stats/TimeSlot.java @@ -60,19 +60,18 @@ public class TimeSlot { * Total response time */ // private AtomicLong totalRt = new AtomicLong(0); - private volatile long totalRt = 0; + private volatile int totalRt = 0; /** * Completed Request counter */ // private AtomicLong compReqs = new AtomicLong(); private volatile int compReqs = 0; - /** * Peak concurrent requests */ - private long peakConcurrentRequests; + private volatile int peakConcurrentRequests; /** * Block requests
@@ -84,7 +83,7 @@ public class TimeSlot { * Total block requests of the resource and its underlying resources
*/ // private AtomicLong totalBlockRequests = new AtomicLong(0); - private volatile long totalBlockRequests = 0; + private volatile int totalBlockRequests = 0; private AtomicReference circuitBreakState = new AtomicReference<>(CircuitBreaker.State.CLOSED); @@ -211,7 +210,7 @@ public class TimeSlot { * * @param concurrentRequests Current concurrent requests */ - public synchronized void updatePeakConcurrentReqeusts(long concurrentRequests) { + public synchronized void updatePeakConcurrentReqeusts(int concurrentRequests) { peakConcurrentRequests = concurrentRequests > peakConcurrentRequests ? concurrentRequests : peakConcurrentRequests; } @@ -244,11 +243,11 @@ public class TimeSlot { this.max = max; } - public long getTotalRt() { + public int getTotalRt() { return totalRt; } - public void setTotalRt(long totalRt) { + public void setTotalRt(int totalRt) { this.totalRt = totalRt; } @@ -256,7 +255,7 @@ public class TimeSlot { return peakConcurrentRequests; } - public void setPeakConcurrentRequests(long peakConcurrentRequests) { + public void setPeakConcurrentRequests(int peakConcurrentRequests) { this.peakConcurrentRequests = peakConcurrentRequests; } @@ -288,7 +287,7 @@ public class TimeSlot { this.compReqs = compReqs; } - public long getTotalBlockRequests() { + public int getTotalBlockRequests() { return totalBlockRequests; } @@ -296,7 +295,7 @@ public class TimeSlot { ++totalBlockRequests; } - public void setTotalBlockRequests(long totalBlockRequests) { + public void setTotalBlockRequests(int totalBlockRequests) { this.totalBlockRequests = totalBlockRequests; }