Package org.apache.storm.messaging.netty
Class Client
- java.lang.Object
-
- org.apache.storm.messaging.ConnectionWithStatus
-
- org.apache.storm.messaging.netty.Client
-
- All Implemented Interfaces:
AutoCloseable
,IConnection
,ISaslClient
public class Client extends ConnectionWithStatus implements 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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.storm.messaging.ConnectionWithStatus
ConnectionWithStatus.Status
-
-
Field Summary
Fields Modifier and Type Field Description protected String
dstAddressPrefixedName
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.String
name()
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()
-
-
-
Field Detail
-
dstAddressPrefixedName
protected final String dstAddressPrefixedName
-
-
Method Detail
-
status
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.- Specified by:
status
in classConnectionWithStatus
-
sendLoadMetrics
public void sendLoadMetrics(Map<Integer,Double> taskToLoad)
Description copied from interface:IConnection
Send load metrics to all downstream connections.- Specified by:
sendLoadMetrics
in interfaceIConnection
- Parameters:
taskToLoad
- a map from the task id to the load for that task.
-
sendBackPressureStatus
public void sendBackPressureStatus(BackPressureStatus bpStatus)
Description copied from interface:IConnection
Sends the back pressure metrics to all downstream connections.- Specified by:
sendBackPressureStatus
in interfaceIConnection
-
send
public void send(Iterator<TaskMessage> msgs)
Enqueue task messages to be sent to the remote destination (cf. `host` and `port`).- Specified by:
send
in interfaceIConnection
-
getDstAddress
public InetSocketAddress getDstAddress()
-
getPort
public int getPort()
Description copied from interface:IConnection
Get the port for this connection.- Specified by:
getPort
in interfaceIConnection
- Returns:
- The port this connection is using
-
close
public void close()
Gracefully close this client.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceIConnection
-
getLoad
public Map<Integer,Load> getLoad(Collection<Integer> tasks)
Description copied from interface:IConnection
Get the current load for the given tasks.- Specified by:
getLoad
in interfaceIConnection
- Parameters:
tasks
- the tasks to look for.- Returns:
- a Load for each of the tasks it knows about.
-
channelReady
public void channelReady(org.apache.storm.shade.io.netty.channel.Channel channel)
- Specified by:
channelReady
in interfaceISaslClient
-
name
public String name()
- Specified by:
name
in interfaceISaslClient
-
secretKey
public String secretKey()
- Specified by:
secretKey
in interfaceISaslClient
-
-