You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Matthias J. Sax (Jira)" <ji...@apache.org> on 2020/07/21 17:28:00 UTC

[jira] [Updated] (KAFKA-10297) Don't use deprecated producer config `retries`

     [ https://issues.apache.org/jira/browse/KAFKA-10297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthias J. Sax updated KAFKA-10297:
------------------------------------
    Description: 
In 2.7.0 release, producer config `retries` gets deprecated via KIP-572.

Connect is still using this config what needs to be fixed (cf [https://github.com/apache/kafka/pull/8864/files#r439685920])
{quote}Btw: @hachikuji raise a concern about this issue, too: https://github.com/apache/kafka/pull/8864#pullrequestreview-443424531

> I just had one question about the proposal. Using retries=0 in the producer allows the user to have "at-most-once" delivery. This allows the application to implement its own retry logic for example. Do we still have a way to do this once this configuration is gone?

So maybe we need to do some follow up work in the `Producer` to make it work for Connect. But I would defer this to the follow up work.

My original though was, that setting `max.deliver.timeout.ms := request .timeout.ms` might prevent internal retries. But we need to verify this. It was also brought to my attention, that this might not work if the network disconnects -- only `retries=0` would prevent to re-open the connection but a low timeout would not prevent retries.

In KIP-572, we proposed for Kafka Streams itself, to treat `task.timeout.ms = 0` as "no retries" -- maybe we can do a similar thing for the producer?

There is also `max.block.ms` that we should consider. Unfortunately, I am not an expert on the `Producer`. But I would like to move forward with KIP-572 for now and are happy to help to resolve those questions.
{quote}

  was:
In 2.7.0 release, producer config `retries` gets deprecated via KIP-572.

Connect is still using this config what needs to be fixed.


> Don't use deprecated producer config `retries`
> ----------------------------------------------
>
>                 Key: KAFKA-10297
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10297
>             Project: Kafka
>          Issue Type: Improvement
>          Components: KafkaConnect
>    Affects Versions: 2.7.0
>            Reporter: Matthias J. Sax
>            Priority: Blocker
>             Fix For: 2.7.0
>
>
> In 2.7.0 release, producer config `retries` gets deprecated via KIP-572.
> Connect is still using this config what needs to be fixed (cf [https://github.com/apache/kafka/pull/8864/files#r439685920])
> {quote}Btw: @hachikuji raise a concern about this issue, too: https://github.com/apache/kafka/pull/8864#pullrequestreview-443424531
> > I just had one question about the proposal. Using retries=0 in the producer allows the user to have "at-most-once" delivery. This allows the application to implement its own retry logic for example. Do we still have a way to do this once this configuration is gone?
> So maybe we need to do some follow up work in the `Producer` to make it work for Connect. But I would defer this to the follow up work.
> My original though was, that setting `max.deliver.timeout.ms := request .timeout.ms` might prevent internal retries. But we need to verify this. It was also brought to my attention, that this might not work if the network disconnects -- only `retries=0` would prevent to re-open the connection but a low timeout would not prevent retries.
> In KIP-572, we proposed for Kafka Streams itself, to treat `task.timeout.ms = 0` as "no retries" -- maybe we can do a similar thing for the producer?
> There is also `max.block.ms` that we should consider. Unfortunately, I am not an expert on the `Producer`. But I would like to move forward with KIP-572 for now and are happy to help to resolve those questions.
> {quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)