Skip to content

Commit 0f16819

Browse files
committed
WIP
1 parent ad9db19 commit 0f16819

File tree

2 files changed

+176
-211
lines changed

2 files changed

+176
-211
lines changed

cluster/src/main/java/io/scalecube/cluster/TransportWrapper.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public Mono<Message> requestResponse(Member member, Message request) {
3939
int increment = currentIndex.getAndIncrement();
4040

4141
if (increment == addresses.size()) {
42-
currentIndex.set(increment = 0);
42+
increment = 0;
43+
currentIndex.set(1);
4344
}
4445

4546
final Address address = addresses.get(increment);
@@ -60,13 +61,23 @@ public Mono<Void> send(Member member, Message request) {
6061
return Mono.defer(
6162
() -> {
6263
final List<Address> addresses = member.addresses();
63-
final AtomicInteger currentIndex = new AtomicInteger();
64+
final int numRetries = addresses.size() - 1;
65+
final Integer index = addressIndexByMember.getOrDefault(member, 0);
66+
final AtomicInteger currentIndex = new AtomicInteger(index);
67+
6468
return Mono.defer(
6569
() -> {
66-
final int index = currentIndex.getAndIncrement();
67-
return transport.send(addresses.get(index), request);
70+
int increment = currentIndex.getAndIncrement();
71+
72+
if (increment == addresses.size()) {
73+
increment = 0;
74+
currentIndex.set(1);
75+
}
76+
77+
final Address address = addresses.get(increment);
78+
return transport.send(address, request);
6879
})
69-
.retry(addresses.size() - 1);
80+
.retry(numRetries);
7081
});
7182
}
7283
}

0 commit comments

Comments
 (0)