public class AvroSource extends SslContextAwareAbstractSource implements EventDrivenSource, Configurable, org.apache.flume.source.avro.AvroSourceProtocol
A Source
implementation that receives Avro events from clients that
implement AvroSourceProtocol
.
This source forms one half of Flume's tiered collection support. Internally,
this source uses Avro's NettyTransceiver to listen for, and handle
events. It can be paired with the builtin AvroSink to create tiered
collection topologies. Of course, nothing prevents one from using this source
to receive data from other custom built infrastructure that uses the same
Avro protocol (specifically AvroSourceProtocol
).
Events may be received from the client either singly or in batches.Generally,
larger batches are far more efficient, but introduce a slight delay (measured
in millis) in delivery. A batch submitted to the configured Channel
atomically (i.e. either all events make it into the channel or none).
Configuration options
Parameter | Description | Unit / Type | Default |
---|---|---|---|
bind | The hostname or IP to which the source will bind. | Hostname or IP / String | none (required) |
port | The port to which the source will bind and listen for events. | TCP port / int | none (required) |
threads | Max number of threads assigned to thread pool, 0 being unlimited | Count / int | 0(optional) |
Metrics
TODO
Constructor and Description |
---|
AvroSource() |
Modifier and Type | Method and Description |
---|---|
org.apache.flume.source.avro.Status |
append(org.apache.flume.source.avro.AvroFlumeEvent avroEvent) |
org.apache.flume.source.avro.Status |
appendBatch(List<org.apache.flume.source.avro.AvroFlumeEvent> events) |
void |
configure(Context context)
Request the implementing class to (re)configure itself.
|
void |
start()
Starts a service or component.
|
void |
stop()
Stops a service or component.
|
String |
toString() |
configureSsl, getExcludeCipherSuites, getExcludeProtocols, getFilteredCipherSuites, getFilteredProtocols, getIncludeCipherSuites, getIncludeProtocols, getKeystore, getKeystorePassword, getKeystoreType, getSslContextSupplier, getSslEngineSupplier, isSslEnabled
getChannelProcessor, getLifecycleState, getName, setChannelProcessor, setName
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getChannelProcessor, setChannelProcessor
getLifecycleState
getName, setName
public void configure(Context context)
Configurable
Request the implementing class to (re)configure itself.
When configuration parameters are changed, they must be reflected by the component asap.
There are no thread safety guarantees on when configure might be called.
configure
in interface Configurable
public void start()
LifecycleAware
Starts a service or component.
Implementations should determine the result of any start logic and effect
the return value of LifecycleAware.getLifecycleState()
accordingly.
start
in interface LifecycleAware
start
in class AbstractSource
public void stop()
LifecycleAware
Stops a service or component.
Implementations should determine the result of any stop logic and effect
the return value of LifecycleAware.getLifecycleState()
accordingly.
stop
in interface LifecycleAware
stop
in class AbstractSource
public String toString()
toString
in class AbstractSource
public org.apache.flume.source.avro.Status append(org.apache.flume.source.avro.AvroFlumeEvent avroEvent)
append
in interface org.apache.flume.source.avro.AvroSourceProtocol
public org.apache.flume.source.avro.Status appendBatch(List<org.apache.flume.source.avro.AvroFlumeEvent> events)
appendBatch
in interface org.apache.flume.source.avro.AvroSourceProtocol
Copyright © 2009–2019 Apache Software Foundation. All rights reserved.