spring boot kafka defaulterrorhandler setbackofffunction not working

23 views Asked by At

I'm using kafka with spring boot, I'm trying to set custom backoff for particular exceptions. for example, if i face illegalargument exception i don't want to retry the record so in that scenario backoff should be 0 retires and 0 interval, and if i face httpclienterror with 4xx or 3xx or 1xx exception that time also i dont want to retry, but if i face 5xx errors, i want to retry with some 10000 interval 3 retire. I have set the backoff with deafulterrorhandler by using defining custom case, but don't know default backoff is being used

code:

@Bean
DefaultErrorHandler defaultErrorHandler(DeadLetterPublishingRecoverer recoverer) {
    DefaultErrorHandler defaultErrorHandler = new DefaultErrorHandler(recoverer);
    defaultErrorHandler.setBackOffFunction((record, exception)-> {
      if(exception.getCause() instanceof HttpClientErrorException
        && ((HttpClientErrorException) exception.getCause()).getStatusCode().is4xxClientError()){
        return new FixedBackOff(0L, 1L);
      }else return new FixedBackOff(interval, attempts);// taking from @Value
    });
    return defaultErrorHandler;
}
0

There are 0 answers