Kafka client版本0.10
ProducerInterceptor
List-1
public interface ProducerInterceptor<K, V> extends Configurable {
public ProducerRecord<K, V> onSend(ProducerRecord<K, V> record);
public void onAcknowledgement(RecordMetadata metadata, Exception exception);
public void close();
}
- onSend方法,在消息發送到Broker之前會調用
- onAcknowledgement,是Broker端返回確認消息後調用
ConsumerInterceptor
List-2
public interface ConsumerInterceptor<K, V> extends Configurable {
public ConsumerRecords<K, V> onConsume(ConsumerRecords<K, V> records);
public void onCommit(Map<TopicPartition, OffsetAndMetadata> offsets);
public void close();
}
- onConsume方法是從Broker端取到消息,但是poll方法返回前調用
- onCommit是提交offset後調用
使用場景:我們可以在Producer端統一攔截,加上處理時間,再在consumer端統一攔截統計端到端的處理時間,這也是一種監控方式。