我正在使用Kafka Producer Api将文件中的消息写入kafka主题,但是kafka主题的日志显示为空?

时间:2019-03-31 14:28:25

标签: apache-kafka kafka-producer-api

我正在使用下面的Producer API代码将消息写入Kafka主题,但无法将消息写入主题:

import java.util.Properties
import com.typesafe.config.ConfigFactory
import org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}
import scala.io.Source

object KafkaProducerDemo {

    def main(args: Array[String]): Unit = {

        val props = new Properties()
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092")
        props.put(ProducerConfig.CLIENT_ID_CONFIG, "KafkaProducerDemo")
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer")
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer")

        val producer = new KafkaProducer[Nothing, String](props)


        val logMessages = Source.
          fromFile("/opt/gen_logs/logs/access.log").
          getLines.
          toList

        logMessages.foreach(message => {
          val record = new ProducerRecord("retail-multi", message)
          producer.send(record)
        })
    }
}

2 个答案:

答案 0 :(得分:1)

基于您在注释中提到的错误(java.lang.ArrayIndexOutOfBoundsException:18),我想说您的客户端库版本和代理版本之间不匹配。客户端库应为<代理(除非客户端库支持动态api版本检查)。

因此,请仔细检查您要连接的代理版本,然后再仔细检查您的客户端库版本。一旦它们匹配或兼容,您应该就可以了!

答案 1 :(得分:0)

您好,我可能是因为某些kafka版本不匹配。我已经重新安装了kafka和sbt。现在它开始正常工作。