1、拦截器配置类
package com.example.hat.config;
import org.apache.kafka.clients.producer.ProducerInterceptor;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class CustomProducerInterceptor implements ProducerInterceptor {
@Override
public ProducerRecord onSend(ProducerRecord record) {
String newValue = "prefix-" + record.value();
ProducerRecord producerRecord = new ProducerRecord(record.topic(),record.partition(),record.timestamp(),
record.key(),newValue, record.headers());
return producerRecord;
}
@Override
public void onAcknowledgement(RecordMetadata metadata, Exception exception) {
}
@Override
public void close() {
}
@Override
public void configure(Map<String, ?> configs) {
}
}
2、在配置文件中引入后方可使用
#重试次数
spring.kafka.producer.retries=10
#配置生产者拦截器
spring.kafka.producer.properties.interceptor.classes=com.example.hat.config.CustomProducerInterceptor,com.example.hat\
.config.CustomProducerInterceptor1
注:多个拦截器用逗号分割,拦截顺序与定义一致