我正在尝试使用org.apache.kafka.clients.consumer.ConsumerInterceptor
添加自定义的消费者拦截器。
我在这里遇到的问题是onConsume()
方法正在获取ConsumerRecords<String, Object>
条记录,但是我想一次只截取一个记录而不是一堆记录。
我该怎么做?请建议
答案 0 :(得分:0)
我能够通过从'spring-kafka-2.7.7-RELEASE'实现'RecordInterceptor'接口来实现,而无需更改kafka上的任何设置。
这个新界面是上周添加的。如果您有兴趣,可以在这里查看详细信息。
答案 1 :(得分:0)
根据ConsumerInterceptor接口的实现,记录将成批进入onConsume()方法中。您可以迭代此记录并执行所需的业务操作。
答案 2 :(得分:0)
如果你使用 Spring:
您可以使用
<%= %>
与方法
org.springframework.kafka.listener.RecordInterceptor
这将通过一次拦截一条记录来工作。
然后,如果您要在发送后更改记录,您可以使用 `org.apache.kafka.clients.producer.ProducerInterceptor。