org.apache.flume.api

## Class AbstractRpcClient

- java.lang.Object
- - org.apache.flume.api.AbstractRpcClient

- All Implemented Interfaces:
    RpcClient
  Direct Known Subclasses:
    FailoverRpcClient, LoadBalancingRpcClient, NettyAvroRpcClient, ThriftRpcClient

      public abstract class AbstractRpcClient
      extends Object
      implements RpcClient

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `batchSize`
    `protected long` | `connectTimeout`
    `protected long` | `requestTimeout`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractRpcClient()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `append(Event event)` Send a single `Event` to the associated Flume source.
    `abstract void` | `appendBatch(List<Event> events)` Send a list of events to the associated Flume source.
    `abstract void` | `close()` Immediately closes the client so that it may no longer be used.
    `protected abstract 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()`.
    `abstract 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

    - #### batchSize

          protected int batchSize

    - #### connectTimeout

          protected long connectTimeout

    - #### requestTimeout

          protected long requestTimeout

  - ### Constructor Detail

    - #### AbstractRpcClient

          public AbstractRpcClient()

  - ### 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`

    - #### append

          public abstract 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 abstract 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 abstract 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`

    - #### close

          public abstract 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`

    - #### configure

          protected abstract void configure(Properties properties)
                                     throws FlumeException

      Configure the client using the given properties object.
      Parameters:
        `properties` -
      Throws:
        `FlumeException` - if the client can not be configured using this method, or if the client was already configured once.

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