Skip to content

Commit 6959390

Browse files
committed
Make LoadbalanceStrategy implementations public
Signed-off-by: Rossen Stoyanchev <rstoyanchev@vmware.com>
1 parent 6200b1a commit 6959390

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

rsocket-core/src/main/java/io/rsocket/loadbalance/LoadbalanceRSocketClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,19 @@ public Builder roundRobinLoadbalanceStrategy() {
146146
* Switch to using a strategy that assigns a weight to each pooled {@code RSocket} based on
147147
* actual usage stats, and uses that to make a choice.
148148
*
149-
* <p>By default this strategy is not used.
149+
* <p>By default, {@link RoundRobinLoadbalanceStrategy} is used.
150150
*/
151151
public Builder weightedLoadbalanceStrategy() {
152152
this.loadbalanceStrategy = new WeightedLoadbalanceStrategy();
153153
return this;
154154
}
155155

156156
/**
157-
* Switch to using a custom strategy for loadbalancing.
157+
* Provide the {@link LoadbalanceStrategy} to use.
158158
*
159-
* @see #roundRobinLoadbalanceStrategy()
159+
* <p>By default, {@link RoundRobinLoadbalanceStrategy} is used.
160160
*/
161-
public Builder customLoadbalanceStrategy(LoadbalanceStrategy strategy) {
161+
public Builder loadbalanceStrategy(LoadbalanceStrategy strategy) {
162162
this.loadbalanceStrategy = strategy;
163163
return this;
164164
}

rsocket-core/src/main/java/io/rsocket/loadbalance/RoundRobinLoadbalanceStrategy.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@
1919
import java.util.List;
2020
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
2121

22-
class RoundRobinLoadbalanceStrategy implements LoadbalanceStrategy {
22+
/**
23+
* Simple {@link LoadbalanceStrategy} that selects the {@code RSocket} to use in round-robin order.
24+
*
25+
* @since 1.1
26+
*/
27+
public class RoundRobinLoadbalanceStrategy implements LoadbalanceStrategy {
2328

2429
volatile int nextIndex;
2530

rsocket-core/src/main/java/io/rsocket/loadbalance/WeightedLoadbalanceStrategy.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,22 @@
2020
import java.util.List;
2121
import java.util.SplittableRandom;
2222
import java.util.concurrent.ThreadLocalRandom;
23-
import java.util.function.Supplier;
2423
import reactor.util.annotation.Nullable;
2524

26-
class WeightedLoadbalanceStrategy implements LoadbalanceStrategy {
25+
/**
26+
* {@link LoadbalanceStrategy} that assigns a weight to each {@code RSocket} based on usage
27+
* statistics, and uses this weight to select the {@code RSocket} to use.
28+
*
29+
* @since 1.1
30+
*/
31+
public class WeightedLoadbalanceStrategy implements LoadbalanceStrategy {
2732

2833
private static final double EXP_FACTOR = 4.0;
2934

3035
private static final int EFFORT = 5;
3136

32-
final SplittableRandom splittableRandom;
3337
final int effort;
34-
final Supplier<Stats> statsSupplier;
38+
final SplittableRandom splittableRandom;
3539

3640
public WeightedLoadbalanceStrategy() {
3741
this(EFFORT);
@@ -42,14 +46,8 @@ public WeightedLoadbalanceStrategy(int effort) {
4246
}
4347

4448
public WeightedLoadbalanceStrategy(int effort, SplittableRandom splittableRandom) {
45-
this(effort, splittableRandom, Stats::create);
46-
}
47-
48-
public WeightedLoadbalanceStrategy(
49-
int effort, SplittableRandom splittableRandom, Supplier<Stats> statsSupplier) {
50-
this.splittableRandom = splittableRandom;
5149
this.effort = effort;
52-
this.statsSupplier = statsSupplier;
50+
this.splittableRandom = splittableRandom;
5351
}
5452

5553
@Override

0 commit comments

Comments
 (0)