Java源码示例:io.atomix.protocols.raft.protocol.InstallResponse
示例1
/**
* Handles an OK install response.
*/
@SuppressWarnings("unused")
protected void handleInstallResponseOk(RaftMemberContext member, InstallRequest request, InstallResponse response) {
// Reset the member failure count and update the member's status if necessary.
succeedAttempt(member);
// If the install request was completed successfully, set the member's snapshotIndex and reset
// the next snapshot index/offset.
if (request.complete()) {
member.setNextSnapshotIndex(0);
member.setNextSnapshotOffset(0);
member.setSnapshotIndex(request.snapshotIndex());
}
// If more install requests remain, increment the member's snapshot offset.
else {
member.setNextSnapshotOffset(request.chunkOffset() + 1);
}
// Recursively append entries to the member.
appendEntries(member);
}
示例2
/**
* Handles an install response.
*/
protected void handleInstallResponse(RaftMemberContext member, InstallRequest request, InstallResponse response, long timestamp) {
if (response.status() == RaftResponse.Status.OK) {
handleInstallResponseOk(member, request, response);
} else {
handleInstallResponseError(member, request, response);
}
}
示例3
/**
* Handles an ERROR install response.
*/
@SuppressWarnings("unused")
protected void handleInstallResponseError(RaftMemberContext member, InstallRequest request, InstallResponse response) {
log.warn("Failed to install {}", member.getMember().memberId());
member.setNextSnapshotIndex(0);
member.setNextSnapshotOffset(0);
}
示例4
@Override
public CompletableFuture<InstallResponse> onInstall(InstallRequest request) {
logRequest(request);
return Futures.completedFuture(logResponse(InstallResponse.builder()
.withStatus(Status.ERROR)
.withError(RaftError.Type.UNAVAILABLE)
.build()));
}
示例5
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return sendAndReceive(memberId, "install", request);
}
示例6
@Override
public void registerInstallHandler(Function<InstallRequest,
CompletableFuture<InstallResponse>> handler) {
registerHandler("install", handler);
}
示例7
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return getServer(memberId).thenCompose(listener ->
listener.install(encode(request))).thenApply(this::decode);
}
示例8
@Override
public void registerInstallHandler(Function<InstallRequest,
CompletableFuture<InstallResponse>> handler) {
this.installHandler = handler;
}
示例9
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return sendAndReceive(memberId, "install", request);
}
示例10
@Override
public void registerInstallHandler(Function<InstallRequest,
CompletableFuture<InstallResponse>> handler) {
registerHandler("install", handler);
}
示例11
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return getServer(memberId).thenCompose(listener ->
listener.install(encode(request))).thenApply(this::decode);
}
示例12
@Override
public void registerInstallHandler(Function<InstallRequest,
CompletableFuture<InstallResponse>> handler) {
this.installHandler = handler;
}
示例13
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return sendAndReceive(context.installSubject, request, memberId);
}
示例14
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
clusterCommunicator.subscribe(context.installSubject, serializer::decode, handler, serializer::encode);
}
示例15
@Override
protected void handleInstallResponse(RaftMemberContext member, InstallRequest request, InstallResponse response, long timestamp) {
super.handleInstallResponse(member, request, response, timestamp);
recordHeartbeat(member, timestamp);
}
示例16
@Override
public CompletableFuture<InstallResponse> onInstall(InstallRequest request) {
CompletableFuture<InstallResponse> future = super.onInstall(request);
resetHeartbeatTimeout();
return future;
}
示例17
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return sendAndReceive(memberId, "install", request);
}
示例18
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
registerHandler("install", handler);
}
示例19
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
return getServer(memberId).thenCompose(listener -> listener.install(encode(request))).thenApply(this::decode);
}
示例20
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
this.installHandler = handler;
}
示例21
/**
* Handles an install request.
*
* @param request The request to handle.
* @return A completable future to be completed with the request response.
*/
CompletableFuture<InstallResponse> onInstall(InstallRequest request);