一 生产者的“事前事后”---producer拦截器
producer拦截器主要实现生产者端定制化功能需求。
对于producer,拦截器使得用户可以在消息发送前以及响应回调时有机会对数据做定制化修改。若多个
拦截器作用于同一个消息则形成一个拦截链。主要实现方法:
onSend(record):该方法运行在用户主线程中也就是send方法中。producer确保在消息被序列化后计算分区前调用。
用户可以对消息做任何操作修改。
onAcknowledgaement(metadata,exception):在消息回调时调用,通常在producer回调逻辑触发前。运行在IO send线程中。
二 消费者“事前事后”---consumer监听器
consumer监听器主要实现消费者端定制化功能需求。
对于consumer,监听器可以在重平衡触发前和触发后调用。主要实现方法:
onPartitionRevoked:重平衡触发前调用,如存储offset到外存;
onPartitionAssigned:重平衡触发后调用,如计时。