/** * Send a {@link TransportMessage} to the given remote * * @return true if the message was written to the send buffer, false otherwise */ public boolean sendMessage(final int nodeId, final BufferWriter writer) { return clientTransport.getOutput().sendMessage(nodeId, writer); }
public ActorFuture<ClientResponse> sendSyncRequest( int nodeId, RemoteAddress remoteAddress, Duration timeout) { clientTransport.registerEndpoint(nodeId, remoteAddress.getAddress()); return sendSyncRequest(nodeId, timeout); }
@Override public void close() { closeAsync().join(); }
private void registerEndpoint( final ClientTransport transport, final int nodeId, final SocketAddress socketAddress) { final RemoteAddress endpoint = transport.getEndpoint(nodeId); if (endpoint == null || !socketAddress.equals(endpoint.getAddress())) { transport.registerEndpoint(nodeId, socketAddress); } }
/** Only use if node id is not known, i.e. on initial join with contact points */ public ActorFuture<ClientResponse> sendPing(SocketAddress socketAddress, Duration timeout) { gossipFailureDetectionEvent .reset() .eventType(GossipEventType.PING) .senderId(membershipList.self().getId()); clientTransport.registerEndpoint(UNKNOWN_NODE_ID, socketAddress); return clientTransport .getOutput() .sendRequest(UNKNOWN_NODE_ID, gossipFailureDetectionEvent, timeout); } }
final RemoteAddress remoteAddress = getRemoteAddress(addr); registerEndpoint(nodeId, addr); try { monitor.wait(Duration.ofSeconds(10).toMillis());
@Override public void onMemberRemoved(final NodeInfo memberInfo, final Topology topology) { managementClientTransport.deactivateEndpoint(memberInfo.getNodeId()); replicationClientTransport.deactivateEndpoint(memberInfo.getNodeId()); subscriptionClientTransport.deactivateEndpoint(memberInfo.getNodeId()); }
@Override protected void after() { if (transport != null) { transport.close(); } if (scheduler != null) { scheduler.stop(); } }
protected ClientTransport build(ClientActorContext actorContext, TransportContext context) { actorContext.setMetricsManager(scheduler.getMetricsManager()); final ClientConductor conductor = new ClientConductor(actorContext, context); final Receiver receiver = new Receiver(actorContext, context); final Sender sender = actorContext.getSender(); final ClientOutput output = new ClientOutputImpl( context.getEndpointRegistry(), sender, defaultRequestRetryTimeout, defaultMessageRetryTimeout); context.setClientOutput(output); scheduler.submitActor(conductor, true); scheduler.submitActor(receiver, true); scheduler.submitActor(sender, true); return new ClientTransport(actorContext, context); }
/** Only use if node id is not known, i.e. on initial join with contact points */ public ActorFuture<ClientResponse> sendPing(SocketAddress socketAddress, Duration timeout) { gossipFailureDetectionEvent .reset() .eventType(GossipEventType.PING) .senderId(membershipList.self().getId()); clientTransport.registerEndpoint(UNKNOWN_NODE_ID, socketAddress); return clientTransport .getOutput() .sendRequest(UNKNOWN_NODE_ID, gossipFailureDetectionEvent, timeout); } }
final RemoteAddress remoteAddress = getRemoteAddress(addr); registerEndpoint(nodeId, addr); try { monitor.wait(Duration.ofSeconds(10).toMillis());
@Override public void onMemberRemoved(final NodeInfo memberInfo, final Topology topology) { managementClientTransport.deactivateEndpoint(memberInfo.getNodeId()); replicationClientTransport.deactivateEndpoint(memberInfo.getNodeId()); subscriptionClientTransport.deactivateEndpoint(memberInfo.getNodeId()); }
@Override protected void after() { if (transport != null) { transport.close(); } if (scheduler != null) { scheduler.stop(); } }
protected ClientTransport build(ClientActorContext actorContext, TransportContext context) { actorContext.setMetricsManager(scheduler.getMetricsManager()); final ClientConductor conductor = new ClientConductor(actorContext, context); final Receiver receiver = new Receiver(actorContext, context); final Sender sender = actorContext.getSender(); final ClientOutput output = new ClientOutputImpl( context.getEndpointRegistry(), sender, defaultRequestRetryTimeout, defaultMessageRetryTimeout); context.setClientOutput(output); scheduler.submitActor(conductor, true); scheduler.submitActor(receiver, true); scheduler.submitActor(sender, true); return new ClientTransport(actorContext, context); }
/** * Send a request to the given address * * @return the client request to poll for a response, or null if the request could not be written * at the moment */ public ActorFuture<ClientResponse> sendRequest( final int nodeId, final BufferWriter writer, final Duration timeout) { return clientTransport.getOutput().sendRequest(nodeId, writer, timeout); }
public ActorFuture<ClientResponse> sendSyncRequest( int nodeId, RemoteAddress remoteAddress, Duration timeout) { clientTransport.registerEndpoint(nodeId, remoteAddress.getAddress()); return sendSyncRequest(nodeId, timeout); }
@Override public void stop(ServiceStopContext stopContext) { stopContext.async(transport.closeAsync()); }
/** * Send a {@link TransportMessage} to the given remote * * @return true if the message was written to the send buffer, false otherwise */ public boolean sendMessage(final int nodeId, final BufferWriter writer) { return clientTransport.getOutput().sendMessage(nodeId, writer); }
@Override public void onMemberAdded(final NodeInfo memberInfo, final Topology topology) { managementClientTransport.registerEndpoint( memberInfo.getNodeId(), memberInfo.getManagementApiAddress()); replicationClientTransport.registerEndpoint( memberInfo.getNodeId(), memberInfo.getReplicationApiAddress()); subscriptionClientTransport.registerEndpoint( memberInfo.getNodeId(), memberInfo.getSubscriptionApiAddress()); }
@Override public void stop(ServiceStopContext stopContext) { stopContext.async(transport.closeAsync()); }