ProducerInterceptors.java

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

你可能感兴趣的:(ProducerInterceptors.java)