kafka producer拦截器作用:
1、producer发送前对消息做一些预处理;
2、producer发送成功后做一些后处理;
1、生产者实现ProducerInterceptor
TimeInterceptor.java
public class TimeInterceptor implements ProducerInterceptor<String, String> {
@Override
public ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) {
return new ProducerRecor<String, String>(record.topic(), record.partition(), record.key(), System.currentTimeMills + "," + record.value());
}
}
CounterInterceptor.java
public class CounterInterceptor implements ProducerInterceptor<String, String> {
private long successCount = 0;
private long errorCount = 0;
@Override
public void onAcknowledge(RecordMetadata metadata, Exception exception) {
if(exception == null) {
successCount++;
} else {
er