Kafka之攔截器Interceptor

    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端統一攔截統計端到端的處理時間,這也是一種監控方式。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章