Class RMQSink<IN>
- java.lang.Object
-
- org.apache.flink.api.common.functions.AbstractRichFunction
-
- org.apache.flink.streaming.api.functions.sink.RichSinkFunction<IN>
-
- org.apache.flink.streaming.connectors.rabbitmq.RMQSink<IN>
-
- Type Parameters:
IN-
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.functions.Function,org.apache.flink.api.common.functions.RichFunction,org.apache.flink.streaming.api.functions.sink.SinkFunction<IN>
public class RMQSink<IN> extends org.apache.flink.streaming.api.functions.sink.RichSinkFunction<IN>A Sink for publishing data into RabbitMQ.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description RMQSink(RMQConnectionConfig rmqConnectionConfig, String queueName, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema)RMQSink(RMQConnectionConfig rmqConnectionConfig, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema, RMQSinkPublishOptions<IN> publishOptions)RMQSink(RMQConnectionConfig rmqConnectionConfig, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema, RMQSinkPublishOptions<IN> publishOptions, SerializableReturnListener returnListener)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidinvoke(IN value)Called when new data arrives to the sink, and forwards it to RMQ.voidopen(org.apache.flink.configuration.Configuration config)voidsetLogFailuresOnly(boolean logFailuresOnly)Defines whether the producer should fail on errors, or only log them.protected com.rabbitmq.client.ConnectionsetupConnection()Initializes the connection to RMQ using the default connection factory fromsetupConnectionFactory().protected com.rabbitmq.client.ConnectionFactorysetupConnectionFactory()Initializes the connection to RMQ with a default connection factory.protected voidsetupQueue()Sets up the queue.-
Methods inherited from class org.apache.flink.api.common.functions.AbstractRichFunction
getIterationRuntimeContext, getRuntimeContext, setRuntimeContext
-
-
-
-
Constructor Detail
-
RMQSink
@PublicEvolving public RMQSink(RMQConnectionConfig rmqConnectionConfig, String queueName, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema)
- Parameters:
rmqConnectionConfig- The RabbitMQ connection configurationRMQConnectionConfig.queueName- The queue to publish messages to.schema- ASerializationSchemafor turning the Java objects received into bytes
-
RMQSink
@PublicEvolving public RMQSink(RMQConnectionConfig rmqConnectionConfig, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema, RMQSinkPublishOptions<IN> publishOptions)
- Parameters:
rmqConnectionConfig- The RabbitMQ connection configurationRMQConnectionConfig.schema- ASerializationSchemafor turning the Java objects received into bytespublishOptions- ARMQSinkPublishOptionsfor providing message's routing key and/or properties In this case the computeMandatoy or computeImmediate MUST return false otherwise an IllegalStateException is raised during runtime.
-
RMQSink
@PublicEvolving public RMQSink(RMQConnectionConfig rmqConnectionConfig, org.apache.flink.api.common.serialization.SerializationSchema<IN> schema, RMQSinkPublishOptions<IN> publishOptions, SerializableReturnListener returnListener)
- Parameters:
rmqConnectionConfig- The RabbitMQ connection configurationRMQConnectionConfig.schema- ASerializationSchemafor turning the Java objects received into bytespublishOptions- ARMQSinkPublishOptionsfor providing message's routing key and/or propertiesreturnListener- A SerializableReturnListener implementation object to handle returned message event
-
-
Method Detail
-
setupQueue
protected void setupQueue() throws IOExceptionSets up the queue. The default implementation just declares the queue. The user may override this method to have a custom setup for the queue (i.e. binding the queue to an exchange or defining custom queue parameters)- Throws:
IOException
-
setLogFailuresOnly
public void setLogFailuresOnly(boolean logFailuresOnly)
Defines whether the producer should fail on errors, or only log them. If this is set to true, then exceptions will be only logged, if set to false, exceptions will be eventually thrown and cause the streaming program to fail (and enter recovery).- Parameters:
logFailuresOnly- The flag to indicate logging-only on exceptions.
-
setupConnectionFactory
protected com.rabbitmq.client.ConnectionFactory setupConnectionFactory() throws ExceptionInitializes the connection to RMQ with a default connection factory. The user may override this method to setup and configure their ownConnectionFactory.- Throws:
Exception
-
setupConnection
protected com.rabbitmq.client.Connection setupConnection() throws ExceptionInitializes the connection to RMQ using the default connection factory fromsetupConnectionFactory(). The user may override this method to setup and configure their ownConnection.- Throws:
Exception
-
open
public void open(org.apache.flink.configuration.Configuration config) throws Exception- Specified by:
openin interfaceorg.apache.flink.api.common.functions.RichFunction- Overrides:
openin classorg.apache.flink.api.common.functions.AbstractRichFunction- Throws:
Exception
-
invoke
public void invoke(IN value)
Called when new data arrives to the sink, and forwards it to RMQ.- Parameters:
value- The incoming data
-
close
public void close()
- Specified by:
closein interfaceorg.apache.flink.api.common.functions.RichFunction- Overrides:
closein classorg.apache.flink.api.common.functions.AbstractRichFunction
-
-