参考答案
处理顺序:拦截器 -> 序列化器 -> 分区器。
Producer拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑。Producer 允许用户指定多个interceptor按序作用于同一条消息,从而形成一个拦截链(interceptor chain)。
Intercetpor的实现接口是org.apache.kafka.clients.producer.ProducerInterceptor。实现下面四个方法:
- configure (configs) :获取配置信息和初始化数据时调用。
- onSend (ProducerRecord) :用户可以在该方法中对消息做任何操作,但最好保证不要修改消息所属的topic和分区,否则会影响目标分区的计算。
- onAcknowledgement (RecordMetadata, Exception) :该方法会在消息被应答或消息发送失败时调用。
- close:关闭 interceptor ,主要用于执行一些资源清理工作。
以上,是 Kafka 面试题【Kafka中的分区器、序列化器、拦截器的处理顺序是什么】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—