Как реализовать Kafka Consumer в Scala
Я пытаюсь реализовать потребителя Кафки в scala. Я видел миллион учебников о том, как это сделать на Java, и даже некоторые (как это), которые говорят, что это для scala, но это написано на Java.
кто-нибудь знает где я могу найти пример как написать это в Scala? Я только начал изучать Scala, поэтому, возможно, связанный пример можно использовать в Scala, даже если он написан на Java или что-то еще, но я честно не знаю, что я делаю в данный момент. Все, что я google, просто связывает меня с тем, как это сделать на Java.
2 ответов
причина вы видите, большинство примеров в Java заключается в том, что новый KafkaProducer
запуск 0.8.2.2 написан на Java.
предполагая, что вы используете sbt в качестве системы сборки, и предполагая, что вы работаете с Kafka 0.8.2.2 (вы можете изменить версию по мере необходимости), вам понадобится:
libraryDependencies ++= {
Seq(
"org.apache.kafka" %% "kafka" % "0.8.2.2",
"org.apache.kafka" % "kafka-clients" % "0.8.2.2",
)
}
простой пример должен заставить вас начать:
import scala.collection.JavaConverters._
import org.apache.kafka.clients.consumer.KafkaConsumer
import org.apache.kafka.common.serialization.StringDeserializer
object KafkaExample {
def main(args: Array[String]): Unit = {
val properties = new Properties()
properties.put("bootstrap.servers", "localhost:9092")
properties.put("group.id", "consumer-tutorial")
properties.put("key.deserializer", classOf[StringDeserializer])
properties.put("value.deserializer", classOf[StringDeserializer])
val kafkaConsumer = new KafkaConsumer[String, String](properties)
kafkaConsumer.subscribe("firstTopic", "secondTopic")
while (true) {
val results = kafkaConsumer.poll(2000).asScala
for ((topic, data) <- results) {
// Do stuff
}
}
}
вы также можете посмотреть на рабочий шаблон, полностью построенный на Scala здесь:https://github.com/knoldus/activator-kafka-scala-producer-consumer Это приложение содержит код, который вы хотите использовать здесь.
надеюсь, я решил вашу проблему спасибо !