Packages

object Producer

Akka Stream connector for publishing messages to Kafka topics.

Source
Producer.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Producer
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def committableSink[K, V](producerSettings: ProducerSettings[K, V], committerSettings: CommitterSettings): Sink[Envelope[K, V, Committable], Future[Done]]

    Create a sink that is aware of the committable offset from a Consumer.committableSource.

    Create a sink that is aware of the committable offset from a Consumer.committableSource. The offsets are batched and committed regularly.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and commits the offset

    - MultiMessage publishes all messages in its records field, and commits the offset

    - PassThroughMessage does not publish anything, but commits the offset

    Note that there is a risk that something fails after publishing but before committing, so it is "at-least once delivery" semantics.

  7. def committableSinkWithOffsetContext[K, V](producerSettings: ProducerSettings[K, V], committerSettings: CommitterSettings): Sink[(Envelope[K, V, _], Committable), Future[Done]]

    Create a sink that is aware of the committable offset passed as context from a Consumer.sourceWithOffsetContext.

    Create a sink that is aware of the committable offset passed as context from a Consumer.sourceWithOffsetContext. The offsets are batched and committed regularly.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and commits the offset

    - MultiMessage publishes all messages in its records field, and commits the offset

    - PassThroughMessage does not publish anything, but commits the offset

    Note that there is a risk that something fails after publishing but before committing, so it is "at-least once delivery" semantics.

    Annotations
    @ApiMayChange()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  11. def flexiFlow[K, V, PassThrough](settings: ProducerSettings[K, V]): Flow[Envelope[K, V, PassThrough], Results[K, V, PassThrough], NotUsed]

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and continues in the stream as Result

    - MultiMessage publishes all messages in its records field, and continues in the stream as MultiResult

    - PassThroughMessage does not publish anything, and continues in the stream as PassThroughResult

    The messages support the possibility to pass through arbitrary data, which can for example be a CommittableOffset or CommittableOffsetBatch that can be committed later in the flow.

  12. def flowWithContext[K, V, C](settings: ProducerSettings[K, V]): FlowWithContext[Envelope[K, V, NotUsed], C, Results[K, V, C], C, NotUsed]

    API MAY CHANGE

    API MAY CHANGE

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and continues in the stream as Result

    - MultiMessage publishes all messages in its records field, and continues in the stream as MultiResult

    - PassThroughMessage does not publish anything, and continues in the stream as PassThroughResult

    This flow is intended to be used with Akka's [flow with context](https://doc.akka.io/docs/akka/current/stream/operators/Flow/asFlowWithContext.html).

    C

    the flow context type

    Annotations
    @ApiMayChange()
  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def plainSink[K, V](settings: ProducerSettings[K, V]): Sink[ProducerRecord[K, V], Future[Done]]

    Create a sink for publishing records to Kafka topics.

    Create a sink for publishing records to Kafka topics.

    The Kafka ProducerRecord contains the topic name to which the record is being sent, an optional partition number, and an optional key and value.

  20. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def committableSink[K, V](settings: ProducerSettings[K, V], producer: org.apache.kafka.clients.producer.Producer[K, V]): Sink[Envelope[K, V, Committable], Future[Done]]

    Create a sink that is aware of the committable offset from a Consumer.committableSource.

    Create a sink that is aware of the committable offset from a Consumer.committableSource. It will commit the consumer offset when the message has been published successfully to the topic.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and commits the offset

    - MultiMessage publishes all messages in its records field, and commits the offset

    - PassThroughMessage does not publish anything, but commits the offset

    Note that there is always a risk that something fails after publishing but before committing, so it is "at-least once delivery" semantics.

    Supports sharing a Kafka Producer instance.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.0.0) use committableSink(ProducerSettings, CommitterSettings) instead

  2. def committableSink[K, V](settings: ProducerSettings[K, V]): Sink[Envelope[K, V, Committable], Future[Done]]

    Create a sink that is aware of the committable offset from a Consumer.committableSource.

    Create a sink that is aware of the committable offset from a Consumer.committableSource. It will commit the consumer offset when the message has been published successfully to the topic.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and commits the offset

    - MultiMessage publishes all messages in its records field, and commits the offset

    - PassThroughMessage does not publish anything, but commits the offset

    Note that there is a risk that something fails after publishing but before committing, so it is "at-least once delivery" semantics.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.0.0) use committableSink(ProducerSettings, CommitterSettings) instead

  3. def flexiFlow[K, V, PassThrough](settings: ProducerSettings[K, V], producer: org.apache.kafka.clients.producer.Producer[K, V]): Flow[Envelope[K, V, PassThrough], Results[K, V, PassThrough], NotUsed]

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and continues in the stream as Result

    - MultiMessage publishes all messages in its records field, and continues in the stream as MultiResult

    - PassThroughMessage does not publish anything, and continues in the stream as PassThroughResult

    The messages support the possibility to pass through arbitrary data, which can for example be a CommittableOffset or CommittableOffsetBatch that can be committed later in the flow.

    Supports sharing a Kafka Producer instance.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.0.0) Pass in external or shared producer using ProducerSettings.withProducerFactory or ProducerSettings.withProducer

  4. def flow[K, V, PassThrough](settings: ProducerSettings[K, V], producer: org.apache.kafka.clients.producer.Producer[K, V]): Flow[Message[K, V, PassThrough], Result[K, V, PassThrough], NotUsed]

    Create a flow to publish records to Kafka topics and then pass it on.

    Create a flow to publish records to Kafka topics and then pass it on.

    The records must be wrapped in a Message and continue in the stream as Result.

    The messages support the possibility to pass through arbitrary data, which can for example be a CommittableOffset or CommittableOffsetBatch that can be committed later in the flow.

    Supports sharing a Kafka Producer instance.

    Annotations
    @deprecated
    Deprecated

    (Since version 0.21) prefer flexiFlow over this flow implementation

  5. def flow[K, V, PassThrough](settings: ProducerSettings[K, V]): Flow[Message[K, V, PassThrough], Result[K, V, PassThrough], NotUsed]

    Create a flow to publish records to Kafka topics and then pass it on.

    Create a flow to publish records to Kafka topics and then pass it on.

    The records must be wrapped in a Message and continue in the stream as Result.

    The messages support the possibility to pass through arbitrary data, which can for example be a CommittableOffset or CommittableOffsetBatch that can be committed later in the flow.

    Annotations
    @deprecated
    Deprecated

    (Since version 0.21) prefer flexiFlow over this flow implementation

  6. def flowWithContext[K, V, C](settings: ProducerSettings[K, V], producer: org.apache.kafka.clients.producer.Producer[K, V]): FlowWithContext[Envelope[K, V, NotUsed], C, Results[K, V, C], C, NotUsed]

    API MAY CHANGE

    API MAY CHANGE

    Create a flow to conditionally publish records to Kafka topics and then pass it on.

    It publishes records to Kafka topics conditionally:

    - Message publishes a single message to its topic, and continues in the stream as Result

    - MultiMessage publishes all messages in its records field, and continues in the stream as MultiResult

    - PassThroughMessage does not publish anything, and continues in the stream as PassThroughResult

    This flow is intended to be used with Akka's [flow with context](https://doc.akka.io/docs/akka/current/stream/operators/Flow/asFlowWithContext.html).

    Supports sharing a Kafka Producer instance.

    C

    the flow context type

    Annotations
    @deprecated @ApiMayChange()
    Deprecated

    (Since version 2.0.0) Pass in external or shared producer using ProducerSettings.withProducerFactory or ProducerSettings.withProducer

  7. def plainSink[K, V](settings: ProducerSettings[K, V], producer: org.apache.kafka.clients.producer.Producer[K, V]): Sink[ProducerRecord[K, V], Future[Done]]

    Create a sink for publishing records to Kafka topics.

    Create a sink for publishing records to Kafka topics.

    The Kafka ProducerRecord contains the topic name to which the record is being sent, an optional partition number, and an optional key and value.

    Supports sharing a Kafka Producer instance.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.0.0) Pass in external or shared producer using ProducerSettings.withProducerFactory or ProducerSettings.withProducer

Inherited from AnyRef

Inherited from Any

Ungrouped