org.apache.flume.api
Class ThriftRpcClient

java.lang.Object
  extended by org.apache.flume.api.AbstractRpcClient
      extended by org.apache.flume.api.ThriftRpcClient
All Implemented Interfaces:
RpcClient
Direct Known Subclasses:
SecureThriftRpcClient

public class ThriftRpcClient
extends AbstractRpcClient


Field Summary
static String BINARY_PROTOCOL
           
static String COMPACT_PROTOCOL
           
static String CONFIG_PROTOCOL
          Config param for the thrift protocol to use.
 
Fields inherited from class org.apache.flume.api.AbstractRpcClient
connectTimeout
 
Constructor Summary
ThriftRpcClient()
           
 
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.
protected  void configure(Properties properties)
          Configure the client using the given properties object.
 int getBatchSize()
          Returns the maximum number of events that may be batched at once by appendBatch().
protected  org.apache.thrift.transport.TTransport getTransport(org.apache.thrift.transport.TSocket tsocket)
           
 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
 

Field Detail

CONFIG_PROTOCOL

public static final String CONFIG_PROTOCOL
Config param for the thrift protocol to use.

See Also:
Constant Field Values

BINARY_PROTOCOL

public static final String BINARY_PROTOCOL
See Also:
Constant Field Values

COMPACT_PROTOCOL

public static final String COMPACT_PROTOCOL
See Also:
Constant Field Values
Constructor Detail

ThriftRpcClient

public ThriftRpcClient()
Method Detail

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
Overrides:
getBatchSize in class AbstractRpcClient

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
Specified by:
append in class AbstractRpcClient
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
Specified by:
appendBatch in class AbstractRpcClient
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
Specified by:
isActive in class AbstractRpcClient

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
Specified by:
close in class AbstractRpcClient
Throws:
FlumeException

configure

protected void configure(Properties properties)
                  throws FlumeException
Description copied from class: AbstractRpcClient
Configure the client using the given properties object.

Specified by:
configure in class AbstractRpcClient
Throws:
FlumeException - if the client can not be configured using this method, or if the client was already configured once.

getTransport

protected org.apache.thrift.transport.TTransport getTransport(org.apache.thrift.transport.TSocket tsocket)
                                                       throws Exception
Throws:
Exception


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