public class ProducerInterceptors implements Closeable {
// 拦截器集合
private final List> interceptors;
// 发送消息时被调用
public ProducerRecord onSend(ProducerRecord record) {
ProducerRecord interceptRecord = record;
for (ProducerInterceptor interceptor : this.interceptors) {
// 循环调用每个拦截器的onSend方法
interceptRecord = interceptor.onSend(interceptRecord);
}
return interceptRecord;
}
// 收到ACK时被调用
public void onAcknowledgement(RecordMetadata metadata, Exception exception) {
for (ProducerInterceptor interceptor : this.interceptors) {
interceptor.onAcknowledgement(metadata, exception);
}
}
}