org.apache.flume.api
Class NettyAvroRpcClient

java.lang.Object
  extended by org.apache.flume.api.NettyAvroRpcClient
All Implemented Interfaces:
RpcClient

public class NettyAvroRpcClient
extends Object
implements RpcClient

Avro/Netty implementation of RpcClient. The connections are intended to be opened before clients are given access so that the object cannot ever be in an inconsistent when exposed to users.


Nested Class Summary
protected static class NettyAvroRpcClient.Builder
          Builder class used to construct NettyAvroRpcClient objects.
 
Method Summary
 void append(Event event)
          Send a single Event to the associated Flume source.
 void appendBatch(List<Event> events)
          Send a list of events to the associated Flume source.
 void close()
          Immediately closes the client so that it may no longer be used.
 int getBatchSize()
          Returns the maximum number of events that may be batched at once by appendBatch().
 boolean isActive()
          Returns true if this object appears to be in a usable state, and it returns false if this object is permanently disabled.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

close

public void close()
           throws FlumeException
Description copied from interface: RpcClient

Immediately closes the client so that it may no longer be used.

Note: This method MUST be called by applications when they are done using the RPC client in order to clean up resources.

Multi-threaded applications may want to gracefully stop making RPC calls before calling close(). Otherwise, they risk getting EventDeliveryException thrown from their in-flight calls when the underlying connection is disabled.

Specified by:
close in interface RpcClient
Throws:
FlumeException

getBatchSize

public int getBatchSize()
Description copied from interface: RpcClient
Returns the maximum number of events that may be batched at once by appendBatch().

Specified by:
getBatchSize in interface RpcClient

append

public void append(Event event)
            throws EventDeliveryException
Description copied from interface: RpcClient

Send a single Event to the associated Flume source.

This method blocks until the RPC returns or until the request times out.

Note: If this method throws an EventDeliveryException, there is no way to recover and the application must invoke RpcClient.close() on this object to clean up system resources.

Specified by:
append in interface RpcClient
Throws:
EventDeliveryException - when an error prevents event delivery.

appendBatch

public void appendBatch(List<Event> events)
                 throws EventDeliveryException
Description copied from interface: RpcClient

Send a list of events to the associated Flume source.

This method blocks until the RPC returns or until the request times out.

It is strongly recommended that the number of events in the List be no more than RpcClient.getBatchSize(). If it is more, multiple RPC calls will be required, and the likelihood of duplicate Events being stored will increase.

Note: If this method throws an EventDeliveryException, there is no way to recover and the application must invoke RpcClient.close() on this object to clean up system resources.

Specified by:
appendBatch in interface RpcClient
Parameters:
events - List of events to send
Throws:
EventDeliveryException - when an error prevents event delivery.

isActive

public boolean isActive()
Description copied from interface: RpcClient

Returns true if this object appears to be in a usable state, and it returns false if this object is permanently disabled.

If this method returns false, an application must call RpcClient.close() on this object to clean up system resources.

Specified by:
isActive in interface RpcClient


Copyright © 2009-2012 Apache Software Foundation. All Rights Reserved.