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;
}