Show / Hide Table of Contents

    Class ConfluentProducerConfigProxy

    Wraps the Confluent.Kafka.ProducerConfig.

    Inheritance
    object
    ConfluentClientConfigProxy
    ConfluentProducerConfigProxy
    KafkaProducerConfig
    Implements
    IValidatableEndpointSettings
    Inherited Members
    ConfluentClientConfigProxy.SaslMechanism
    ConfluentClientConfigProxy.Acks
    ConfluentClientConfigProxy.ClientId
    ConfluentClientConfigProxy.BootstrapServers
    ConfluentClientConfigProxy.MessageMaxBytes
    ConfluentClientConfigProxy.MessageCopyMaxBytes
    ConfluentClientConfigProxy.ReceiveMessageMaxBytes
    ConfluentClientConfigProxy.MaxInFlight
    ConfluentClientConfigProxy.TopicMetadataRefreshIntervalMs
    ConfluentClientConfigProxy.MetadataMaxAgeMs
    ConfluentClientConfigProxy.TopicMetadataRefreshFastIntervalMs
    ConfluentClientConfigProxy.TopicMetadataRefreshSparse
    ConfluentClientConfigProxy.TopicMetadataPropagationMaxMs
    ConfluentClientConfigProxy.TopicBlacklist
    ConfluentClientConfigProxy.Debug
    ConfluentClientConfigProxy.SocketTimeoutMs
    ConfluentClientConfigProxy.SocketSendBufferBytes
    ConfluentClientConfigProxy.SocketReceiveBufferBytes
    ConfluentClientConfigProxy.SocketKeepaliveEnable
    ConfluentClientConfigProxy.SocketNagleDisable
    ConfluentClientConfigProxy.SocketMaxFails
    ConfluentClientConfigProxy.BrokerAddressTtl
    ConfluentClientConfigProxy.BrokerAddressFamily
    ConfluentClientConfigProxy.SocketConnectionSetupTimeoutMs
    ConfluentClientConfigProxy.ConnectionsMaxIdleMs
    ConfluentClientConfigProxy.ReconnectBackoffMs
    ConfluentClientConfigProxy.ReconnectBackoffMaxMs
    ConfluentClientConfigProxy.StatisticsIntervalMs
    ConfluentClientConfigProxy.LogQueue
    ConfluentClientConfigProxy.LogThreadName
    ConfluentClientConfigProxy.EnableRandomSeed
    ConfluentClientConfigProxy.LogConnectionClose
    ConfluentClientConfigProxy.InternalTerminationSignal
    ConfluentClientConfigProxy.ApiVersionRequest
    ConfluentClientConfigProxy.ApiVersionRequestTimeoutMs
    ConfluentClientConfigProxy.ApiVersionFallbackMs
    ConfluentClientConfigProxy.BrokerVersionFallback
    ConfluentClientConfigProxy.AllowAutoCreateTopics
    ConfluentClientConfigProxy.SecurityProtocol
    ConfluentClientConfigProxy.SslCipherSuites
    ConfluentClientConfigProxy.SslCurvesList
    ConfluentClientConfigProxy.SslSigalgsList
    ConfluentClientConfigProxy.SslKeyLocation
    ConfluentClientConfigProxy.SslKeyPassword
    ConfluentClientConfigProxy.SslKeyPem
    ConfluentClientConfigProxy.SslCertificateLocation
    ConfluentClientConfigProxy.SslCertificatePem
    ConfluentClientConfigProxy.SslCaLocation
    ConfluentClientConfigProxy.SslCaPem
    ConfluentClientConfigProxy.SslCaCertificateStores
    ConfluentClientConfigProxy.SslCrlLocation
    ConfluentClientConfigProxy.SslKeystoreLocation
    ConfluentClientConfigProxy.SslKeystorePassword
    ConfluentClientConfigProxy.SslProviders
    ConfluentClientConfigProxy.SslEngineLocation
    ConfluentClientConfigProxy.SslEngineId
    ConfluentClientConfigProxy.EnableSslCertificateVerification
    ConfluentClientConfigProxy.SslEndpointIdentificationAlgorithm
    ConfluentClientConfigProxy.SaslKerberosServiceName
    ConfluentClientConfigProxy.SaslKerberosPrincipal
    ConfluentClientConfigProxy.SaslKerberosKinitCmd
    ConfluentClientConfigProxy.SaslKerberosKeytab
    ConfluentClientConfigProxy.SaslKerberosMinTimeBeforeRelogin
    ConfluentClientConfigProxy.SaslUsername
    ConfluentClientConfigProxy.SaslPassword
    ConfluentClientConfigProxy.SaslOauthbearerConfig
    ConfluentClientConfigProxy.EnableSaslOauthbearerUnsecureJwt
    ConfluentClientConfigProxy.SaslOauthbearerMethod
    ConfluentClientConfigProxy.SaslOauthbearerClientId
    ConfluentClientConfigProxy.SaslOauthbearerClientSecret
    ConfluentClientConfigProxy.SaslOauthbearerScope
    ConfluentClientConfigProxy.SaslOauthbearerExtensions
    ConfluentClientConfigProxy.SaslOauthbearerTokenEndpointUrl
    ConfluentClientConfigProxy.PluginLibraryPaths
    ConfluentClientConfigProxy.ClientRack
    ConfluentClientConfigProxy.ClientDnsLookup
    ConfluentClientConfigProxy.CancellationDelayMaxMs
    ConfluentClientConfigProxy.Validate()
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Silverback.Messaging.Configuration.Kafka
    Assembly: Silverback.Integration.Kafka.dll
    Syntax
    public abstract class ConfluentProducerConfigProxy : ConfluentClientConfigProxy, IValidatableEndpointSettings

    Constructors

    | Improve this doc View source

    ConfluentProducerConfigProxy(ClientConfig?)

    Initializes a new instance of the ConfluentProducerConfigProxy class.

    Declaration
    protected ConfluentProducerConfigProxy(ClientConfig? clientConfig = null)
    Parameters
    Type Name Description
    ClientConfig clientConfig

    The Confluent.Kafka.ClientConfig to be used to initialize the Confluent.Kafka.ProducerConfig.

    Properties

    | Improve this doc View source

    BatchNumMessages

    Maximum number of messages batched in one MessageSet. The total MessageSet size is also limited by batch.size and message.max.bytes.

    default: 10000
    importance: medium

    Declaration
    public int? BatchNumMessages { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    BatchSize

    Maximum size (in bytes) of all messages batched in one MessageSet, including protocol framing overhead. This limit is applied after the first message has been added to the batch, regardless of the first message's size, this is to ensure that messages that exceed batch.size are produced. The total MessageSet size is also limited by batch.num.messages and message.max.bytes.

    default: 1000000
    importance: medium

    Declaration
    public int? BatchSize { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    CompressionLevel

    Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage. Usable range is algorithm-dependent: [0-9] for gzip; [0-12] for lz4; only 0 for snappy; -1 = codec-dependent default compression level.

    default: -1
    importance: medium

    Declaration
    public int? CompressionLevel { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    CompressionType

    compression codec to use for compressing message sets. This is the default value for all topics, may be overridden by the topic configuration property compression.codec.

    default: none
    importance: medium

    Declaration
    public CompressionType? CompressionType { get; set; }
    Property Value
    Type Description
    CompressionType?
    | Improve this doc View source

    ConfluentConfig

    Gets the Confluent.Kafka.ClientConfig instance being wrapped.

    Declaration
    protected ProducerConfig ConfluentConfig { get; }
    Property Value
    Type Description
    ProducerConfig
    | Improve this doc View source

    DeliveryReportFields

    A comma separated list of fields that may be optionally set in delivery reports. Disabling delivery report fields that you do not require will improve maximum throughput and reduce memory usage. Allowed values: key, value, timestamp, headers, status, all, none.

    default: all
    importance: low

    Declaration
    public string DeliveryReportFields { get; set; }
    Property Value
    Type Description
    string
    Remarks

    Silverback overrides this value by default setting it to "key,status" as an optimization, since the other fields aren't used.

    | Improve this doc View source

    EnableBackgroundPoll

    Specifies whether or not the producer should start a background poll thread to receive delivery reports and event notifications. Generally, this should be set to true. If set to false, you will need to call the Poll function manually.

    default: true
    importance: low

    Declaration
    public bool? EnableBackgroundPoll { get; set; }
    Property Value
    Type Description
    bool?
    | Improve this doc View source

    EnableDeliveryReports

    Specifies whether to enable notification of delivery reports. Typically you should set this parameter to true. Set it to false for "fire and forget" semantics and a small boost in performance.

    default: true
    importance: low

    Declaration
    public bool? EnableDeliveryReports { get; set; }
    Property Value
    Type Description
    bool?
    | Improve this doc View source

    EnableGaplessGuarantee

    EXPERIMENTAL: subject to change or removal. When set to true, any error that could result in a gap in the produced message series when a batch of messages fails, will raise a fatal error (ERR__GAPLESS_GUARANTEE) and stop the producer. Messages failing due to message.timeout.ms are not covered by this guarantee. Requires enable.idempotence=true.

    default: false
    importance: low

    Declaration
    public bool? EnableGaplessGuarantee { get; set; }
    Property Value
    Type Description
    bool?
    | Improve this doc View source

    EnableIdempotence

    When set to true, the producer will ensure that messages are successfully produced exactly once and in the original produce order. The following configuration properties are adjusted automatically (if not modified by the user) when idempotence is enabled: max.in.flight.requests.per.connection=5 (must be less than or equal to 5), retries=INT32_MAX (must be greater than 0), acks=all, queuing.strategy=fifo. Producer instantation will fail if user-supplied configuration is incompatible.

    default: false
    importance: high

    Declaration
    public bool? EnableIdempotence { get; set; }
    Property Value
    Type Description
    bool?
    | Improve this doc View source

    LingerMs

    Delay in milliseconds to wait for messages in the producer queue to accumulate before constructing message batches (MessageSets) to transmit to brokers. A higher value allows larger and more effective (less overhead, improved compression) batches of messages to accumulate at the expense of increased message delivery latency.

    default: 5
    importance: high

    Declaration
    public double? LingerMs { get; set; }
    Property Value
    Type Description
    double?
    | Improve this doc View source

    MessageSendMaxRetries

    How many times to retry sending a failing Message. Note: retrying may cause reordering unless enable.idempotence is set to true.

    default: 2147483647
    importance: high

    Declaration
    public int? MessageSendMaxRetries { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    MessageTimeoutMs

    Local message timeout. This value is only enforced locally and limits the time a produced message waits for successful delivery. A time of 0 is infinite. This is the maximum time librdkafka may use to deliver a message (including retries). Delivery error occurs when either the retry count or the message timeout are exceeded. The message timeout is automatically adjusted to transaction.timeout.ms if transactional.id is configured.

    default: 300000
    importance: high

    Declaration
    public int? MessageTimeoutMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    Partitioner

    Partitioner: random - random distribution, consistent - CRC32 hash of key (Empty and NULL keys are mapped to single partition), consistent_random - CRC32 hash of key (Empty and NULL keys are randomly partitioned), murmur2 - Java Producer compatible Murmur2 hash of key (NULL keys are mapped to single partition), murmur2_random - Java Producer compatible Murmur2 hash of key (NULL keys are randomly partitioned. This is functionally equivalent to the default partitioner in the Java Producer.), fnv1a - FNV-1a hash of key (NULL keys are mapped to single partition), fnv1a_random - FNV-1a hash of key (NULL keys are randomly partitioned).

    default: consistent_random
    importance: high

    Declaration
    public Partitioner? Partitioner { get; set; }
    Property Value
    Type Description
    Partitioner?
    | Improve this doc View source

    QueueBufferingBackpressureThreshold

    The threshold of outstanding not yet transmitted broker requests needed to backpressure the producer's message accumulator. If the number of not yet transmitted requests equals or exceeds this number, produce request creation that would have otherwise been triggered (for example, in accordance with linger.ms) will be delayed. A lower number yields larger and more effective batches. A higher value can improve latency when using compression on slow machines.

    default: 1
    importance: low

    Declaration
    public int? QueueBufferingBackpressureThreshold { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    QueueBufferingMaxKbytes

    Maximum total message size sum allowed on the producer queue. This queue is shared by all topics and partitions. This property has higher priority than queue.buffering.max.messages.

    default: 1048576
    importance: high

    Declaration
    public int? QueueBufferingMaxKbytes { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    QueueBufferingMaxMessages

    Maximum number of messages allowed on the producer queue. This queue is shared by all topics and partitions. A value of 0 disables this limit.

    default: 100000
    importance: high

    Declaration
    public int? QueueBufferingMaxMessages { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    RequestTimeoutMs

    The ack timeout of the producer request in milliseconds. This value is only enforced by the broker and relies on request.required.acks being != 0.

    default: 30000
    importance: medium

    Declaration
    public int? RequestTimeoutMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    RetryBackoffMaxMs

    The max backoff time in milliseconds before retrying a protocol request, this is the atmost backoff allowed for exponentially backed off requests.

    default: 1000
    importance: medium

    Declaration
    public int? RetryBackoffMaxMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    RetryBackoffMs

    The backoff time in milliseconds before retrying a protocol request, this is the first backoff time, and will be backed off exponentially until number of retries is exhausted, and it's capped by retry.backoff.max.ms.

    default: 100
    importance: medium

    Declaration
    public int? RetryBackoffMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    StickyPartitioningLingerMs

    Delay in milliseconds to wait to assign new sticky partitions for each topic. By default, set to double the time of linger.ms. To disable sticky behavior, set to 0. This behavior affects messages with the key NULL in all cases, and messages with key lengths of zero when the consistent_random partitioner is in use. These messages would otherwise be assigned randomly. A higher value allows for more effective batching of these messages.

    default: 10
    importance: low

    Declaration
    public int? StickyPartitioningLingerMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    TransactionTimeoutMs

    The maximum amount of time in milliseconds that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction. If this value is larger than the transaction.max.timeout.ms setting in the broker, the init_transactions() call will fail with ERR_INVALID_TRANSACTION_TIMEOUT. The transaction timeout automatically adjusts message.timeout.ms and socket.timeout.ms, unless explicitly configured in which case they must not exceed the transaction timeout (socket.timeout.ms must be at least 100ms lower than transaction.timeout.ms). This is also the default timeout value if no timeout (-1) is supplied to the transactional API methods.

    default: 60000
    importance: medium

    Declaration
    public int? TransactionTimeoutMs { get; set; }
    Property Value
    Type Description
    int?
    | Improve this doc View source

    TransactionalId

    Enables the transactional producer. The transactional.id is used to identify the same transactional producer instance across process restarts. It allows the producer to guarantee that transactions corresponding to earlier instances of the same producer have been finalized prior to starting any new transactions, and that any zombie instances are fenced off. If no transactional.id is provided, then the producer is limited to idempotent delivery (if enable.idempotence is set). Requires broker version >= 0.11.0.

    default: ''
    importance: high

    Declaration
    public string TransactionalId { get; set; }
    Property Value
    Type Description
    string

    Implements

    IValidatableEndpointSettings
    • Improve this doc
    • View source
    GitHub E-Mail
    ↑ Back to top © 2020 Sergio Aquilini