我正在使用下面的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)
})
}
}
答案 0 :(得分:1)
基于您在注释中提到的错误(java.lang.ArrayIndexOutOfBoundsException:18),我想说您的客户端库版本和代理版本之间不匹配。客户端库应为<代理(除非客户端库支持动态api版本检查)。
因此,请仔细检查您要连接的代理版本,然后再仔细检查您的客户端库版本。一旦它们匹配或兼容,您应该就可以了!
答案 1 :(得分:0)
您好,我可能是因为某些kafka版本不匹配。我已经重新安装了kafka和sbt。现在它开始正常工作。