Skip to content

Commit d819f27

Browse files
committed
add spi
1 parent 9e8925f commit d819f27

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

shenyu-loadbalancer/src/main/java/org/apache/shenyu/loadbalancer/spi/PeakEWMALoadBalancer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.apache.shenyu.loadbalancer.spi;
1919

2020
import org.apache.shenyu.loadbalancer.entity.Upstream;
21+
import org.apache.shenyu.spi.Join;
2122

2223
import java.util.ArrayList;
2324
import java.util.List;
@@ -41,13 +42,14 @@
4142
* /dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/main/java/org/apache
4243
* /dubbo/rpc/cluster/loadbalance/PeakEwmaLoadBalance.java#L46
4344
*/
45+
@Join
4446
public class PeakEWMALoadBalancer extends AbstractLoadBalancer {
4547

4648
private static final double PENALTY = Long.MAX_VALUE >> 16;
4749

4850
private static final double ZERO_COST = 1E-6;
4951

50-
private static double decayTime = 10000;
52+
private static final double DECAY_TIME = 600;
5153

5254
@Override
5355
protected Upstream doSelect(List<Upstream> upstreamList, String ip) {
@@ -109,7 +111,7 @@ private void observe() {
109111

110112
final long currentTime = System.currentTimeMillis();
111113
long td = Math.max(currentTime - lastUpdateTime, 0);
112-
double w = Math.exp(-td / decayTime);
114+
double w = Math.exp( -td / DECAY_TIME);
113115
if (rtt > cost) {
114116
cost = rtt;
115117
} else {

shenyu-loadbalancer/src/main/resources/META-INF/shenyu/org.apache.shenyu.loadbalancer.spi.LoadBalancer

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ roundRobin=org.apache.shenyu.loadbalancer.spi.RoundRobinLoadBalancer
1818
hash=org.apache.shenyu.loadbalancer.spi.HashLoadBalancer
1919
leastActive=org.apache.shenyu.loadbalancer.spi.LeastActiveLoadBalance
2020
p2c=org.apache.shenyu.loadbalancer.spi.P2cLoadBalancer
21-
shortestResponse=org.apache.shenyu.loadbalancer.spi.ShortestResponseLoadBalancer
21+
shortestResponse=org.apache.shenyu.loadbalancer.spi.ShortestResponseLoadBalancer
22+
peakEWMA=org.apache.shenyu.loadbalancer.spi.PeakEWMALoadBalancer

0 commit comments

Comments
 (0)