如何在Scala中公开Kafka的Java方法(带有分区的CommitSync)? [英] How to expose Java method for Kafka (commitSync with partitions) in Scala?
本文介绍了如何在Scala中公开Kafka的Java方法(带有分区的CommitSync)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过Scala公开Java方法(有关原始Java方法的更多详细信息-它来自
I am trying to expose Java method via Scala (more details on original java method - it is coming from Kafka)
这是原始的Java方法:
This is original Java method:
public void commitSync(Map<TopicPartition,OffsetAndMetadata> offsets)
如何在Scala中公开参数并将其传递给方法?我有类似的东西:
How to expose and pass parameters to a method in Scala? I have something like:
def commitSync() = {
consumer.commitSync(...)
}
谢谢.
推荐答案
您的Scala代码段看起来是正确的,这就是我填写其余代码的方式:
Your Scala snippet looks correct, this is how I'd fill up the rest of it:
import org.apache.kafka.clients.consumer.{KafkaConsumer, OffsetAndMetadata}
import org.apache.kafka.common.TopicPartition
import collection.mutable.Map
import collection.JavaConverters._
//initialise your consumer the way you want
val consumer = createKafkaConsumer(config, subscriptions)
//you could accept a scala.collection.mutable.Map here
def commitSync(offsets: Map[TopicPartition, OffsetAndMetadata]) = {
//and then convert it to a java.util.Map
consumer.commitSync(offsets.asJava)
}
这篇关于如何在Scala中公开Kafka的Java方法(带有分区的CommitSync)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文