public class Client extends ConnectionWithStatus implements IStatefulObject, ISaslClient
A Netty client for sending task messages to a remote destination (Netty server).
Implementation details:
Sending messages, i.e. writing to the channel, is performed asynchronously. Messages are sent in batches to optimize for network throughput at the expense of network latency. The message batch size is configurable. Connecting and reconnecting are performed asynchronously. Note: The current implementation drops any messages that are being enqueued for sending if the connection to the remote destination is currently unavailable.
ConnectionWithStatus.Status| Modifier and Type | Field and Description | 
|---|---|
| protected String | dstAddressPrefixedName | 
| Modifier and Type | Method and Description | 
|---|---|
| void | channelReady(org.apache.storm.shade.io.netty.channel.Channel channel) | 
| void | close()Gracefully close this client. | 
| Map<String,Object> | getConfig() | 
| InetSocketAddress | getDstAddress() | 
| Map<Integer,Load> | getLoad(Collection<Integer> tasks)Get the current load for the given tasks | 
| int | getPort()Get the port for this connection | 
| Object | getState() | 
| String | name() | 
| void | registerNewConnectionResponse(Supplier<Object> cb)Register a response generator to be used to send an initial response when a new client connects. | 
| void | registerRecv(IConnectionCallback cb)Receiving messages is not supported by a client. | 
| String | secretKey() | 
| void | send(Iterator<TaskMessage> msgs)Enqueue task messages to be sent to the remote destination (cf. | 
| void | sendBackPressureStatus(BackPressureStatus bpStatus)Sends the back pressure metrics to all downstream connections. | 
| void | sendLoadMetrics(Map<Integer,Double> taskToLoad)Send load metrics to all downstream connections. | 
| ConnectionWithStatus.Status | status()Note: Storm will check via this method whether a worker can be activated safely during the initial startup of a topology. | 
| String | toString() | 
protected final String dstAddressPrefixedName
public ConnectionWithStatus.Status status()
Note: Storm will check via this method whether a worker can be activated safely during the initial startup of a topology. The worker will only be activated once all of the its connections are ready.
status in class ConnectionWithStatuspublic void registerRecv(IConnectionCallback cb)
Receiving messages is not supported by a client.
registerRecv in interface IConnectioncb - the callback to process the messages.UnsupportedOperationException - whenever this method is being called.public void registerNewConnectionResponse(Supplier<Object> cb)
IConnectionRegister a response generator to be used to send an initial response when a new client connects.
registerNewConnectionResponse in interface IConnectioncb - the callback to process the connection.public void sendLoadMetrics(Map<Integer,Double> taskToLoad)
IConnectionSend load metrics to all downstream connections.
sendLoadMetrics in interface IConnectiontaskToLoad - a map from the task id to the load for that task.public void sendBackPressureStatus(BackPressureStatus bpStatus)
IConnectionSends the back pressure metrics to all downstream connections.
sendBackPressureStatus in interface IConnectionpublic void send(Iterator<TaskMessage> msgs)
Enqueue task messages to be sent to the remote destination (cf. host and port).
send in interface IConnectionpublic InetSocketAddress getDstAddress()
public int getPort()
IConnectionGet the port for this connection
getPort in interface IConnectionpublic void close()
Gracefully close this client.
close in interface AutoCloseableclose in interface IConnectionpublic Map<Integer,Load> getLoad(Collection<Integer> tasks)
IConnectionGet the current load for the given tasks
getLoad in interface IConnectiontasks - the tasks to look for.public Object getState()
getState in interface IStatefulObjectpublic void channelReady(org.apache.storm.shade.io.netty.channel.Channel channel)
channelReady in interface ISaslClientpublic String name()
name in interface ISaslClientpublic String secretKey()
secretKey in interface ISaslClientCopyright © 2019 The Apache Software Foundation. All rights reserved.