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

问题描述 投票:0回答:2

我使用生产者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)
        })
    }
}
apache-kafka kafka-producer-api
2个回答
1
投票

根据您在评论中提到的错误(java.lang.ArrayIndexOutOfBoundsException:18),我会说您的客户端库版本和代理版本之间存在不匹配。客户端lib应该是<broker(除非客户端lib支持动态API版本检查)。

因此,仔细检查您要连接的代理版本,然后仔细检查您的客户端库版本。一旦匹配或兼容,你应该好好去!


0
投票

嗨,我可能是因为一些卡夫卡版本不匹配。我已经重新安装kafka和sbt。它现在开始运作良好。

© www.soinside.com 2019 - 2024. All rights reserved.