sealed abstract class ProducerSettings[F[_], K, V] extends AnyRef
ProducerSettings contain settings necessary to create a KafkaProducer. At the very
least, this includes a key serializer and a value serializer.
Several convenience functions are provided so that you don't have to work with String
values
and ProducerConfig
for configuration. It's still possible to specify ProducerConfig
values
with functions like withProperty.
ProducerSettings instances are immutable and all modification functions return a new
ProducerSettings instance.
Use ProducerSettings#apply
to create a new instance.
- Source
- ProducerSettings.scala
- Alphabetic
- By Inheritance
- ProducerSettings
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def closeTimeout: FiniteDuration
The time to wait for the Java
KafkaProducer
to shutdown.The time to wait for the Java
KafkaProducer
to shutdown.The default value is 60 seconds.
- abstract def customBlockingContext: Option[ExecutionContext]
A custom ExecutionContext to use for blocking Kafka operations.
A custom ExecutionContext to use for blocking Kafka operations. If not provided, the default blocking ExecutionContext provided by cats.effect.Sync will be used.
- abstract def failFastProduce: Boolean
Controls whether fs2.kafka.KafkaProducer.produce fails immediately if any org.apache.kafka.clients.producer.KafkaProducer.send callback resolves with error.
Controls whether fs2.kafka.KafkaProducer.produce fails immediately if any org.apache.kafka.clients.producer.KafkaProducer.send callback resolves with error.
When set to
true
, theproduce
method will fail fast, returning an error as soon as any record in the ProducerRecords fails to be sent.The default value is
false
, meaning theproduce
method will not fail fast and will continue processing other records even if some callbacks fail. - abstract def keySerializer: Resource[F, KeySerializer[F, K]]
The
Serializer
to use for serializing record keys. - abstract def properties: Map[String, String]
Properties which can be provided when creating a Java
KafkaProducer
instance.Properties which can be provided when creating a Java
KafkaProducer
instance. Numerous functions in ProducerSettings add properties here if the settings are used by the JavaKafkaProducer
. - abstract def valueSerializer: Resource[F, ValueSerializer[F, V]]
The
Serializer
to use for serializing record values. - abstract def withAcks(acks: Acks): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified acknowledgements.
Returns a new ProducerSettings instance with the specified acknowledgements. This is equivalent to setting the following property using the withProperty function, except you can specify it with Acks instead of a
String
.ProducerConfig.ACKS_CONFIG
- abstract def withBatchSize(batchSize: Int): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified batch size.
Returns a new ProducerSettings instance with the specified batch size. This is equivalent to setting the following property using the withProperty function, except you can specify it with an
Int
instead of aString
.ProducerConfig.BATCH_SIZE_CONFIG
- abstract def withBootstrapServers(bootstrapServers: String): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified bootstrap servers.
Returns a new ProducerSettings instance with the specified bootstrap servers. This is equivalent to setting the following property using the withProperty function.
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG
- abstract def withClientId(clientId: String): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified client id.
Returns a new ProducerSettings instance with the specified client id. This is equivalent to setting the following property using the withProperty function.
ProducerConfig.CLIENT_ID_CONFIG
- abstract def withCloseTimeout(closeTimeout: FiniteDuration): ProducerSettings[F, K, V]
Creates a new ProducerSettings with the specified closeTimeout.
- abstract def withCredentials(credentialsStore: KafkaCredentialStore): ProducerSettings[F, K, V]
Includes the credentials properties from the provided KafkaCredentialStore
- abstract def withCustomBlockingContext(ec: ExecutionContext): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified ExecutionContext to use for blocking operations.
Returns a new ProducerSettings instance with the specified ExecutionContext to use for blocking operations.
If not provided, the default blocking ExecutionContext provided by cats.effect.Sync will be used. If in doubt, leave this unset.
- abstract def withDeliveryTimeout(deliveryTimeout: FiniteDuration): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified delivery timeout.
Returns a new ProducerSettings instance with the specified delivery timeout. This is equivalent to setting the following property using the withProperty function, except you can specify it with a
FiniteDuration
instead of aString
.ProducerConfig.DELIVERY_TIMEOUT_MS_CONFIG
- abstract def withEnableIdempotence(enableIdempotence: Boolean): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified idempotence setting.
Returns a new ProducerSettings instance with the specified idempotence setting. This is equivalent to setting the following property using the withProperty function, except you can specify it with a
Boolean
instead of aString
.ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG
- abstract def withFailFastProduce(failFastProduce: Boolean): ProducerSettings[F, K, V]
Creates a new ProducerSettings with the specified failFastProduce.
- abstract def withLinger(linger: FiniteDuration): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified linger.
Returns a new ProducerSettings instance with the specified linger. This is equivalent to setting the following property using the withProperty function, except you can specify it with a
FiniteDuration
instead of aString
.ProducerConfig.LINGER_MS_CONFIG
- abstract def withMaxInFlightRequestsPerConnection(maxInFlightRequestsPerConnection: Int): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified max in-flight requests per connection.
Returns a new ProducerSettings instance with the specified max in-flight requests per connection. This is equivalent to setting the following property using the withProperty function, except you can specify it with an
Int
instead of aString
.ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION
- abstract def withProperties(properties: Map[String, String]): ProducerSettings[F, K, V]
Includes the specified keys and values as properties.
Includes the specified keys and values as properties. The keys should be part of the
ProducerConfig
keys, and the values should be valid choices for the keys. - abstract def withProperties(properties: (String, String)*): ProducerSettings[F, K, V]
Includes the specified keys and values as properties.
Includes the specified keys and values as properties. The keys should be part of the
ProducerConfig
keys, and the values should be valid choices for the keys. - abstract def withProperty(key: String, value: String): ProducerSettings[F, K, V]
Includes a property with the specified
key
andvalue
.Includes a property with the specified
key
andvalue
. The key should be one of the keys inProducerConfig
, and the value should be a valid choice for the key. - abstract def withRequestTimeout(requestTimeout: FiniteDuration): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified request timeout.
Returns a new ProducerSettings instance with the specified request timeout. This is equivalent to setting the following property using the withProperty function, except you can specify it with a
FiniteDuration
instead of aString
.ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG
- abstract def withRetries(retries: Int): ProducerSettings[F, K, V]
Returns a new ProducerSettings instance with the specified retries.
Returns a new ProducerSettings instance with the specified retries. This is equivalent to setting the following property using the withProperty function, except you can specify it with an
Int
instead of aString
.ProducerConfig.RETRIES_CONFIG
- abstract def withSerializers[K1, V1](keySerializer: Resource[F, KeySerializer[F, K1]], valueSerializer: Resource[F, ValueSerializer[F, V1]]): ProducerSettings[F, K1, V1]
Replace the serializers with those provided in the arguments.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()