我有下面的案例课:
case class Alpakka(id:Int,name:String,animal_type:String)
我正在尝试使用以下代码将这些案例类的列表连接到kafka中的生产者:
def connectEntriesToProducer(seq: Seq[Alpakka]) = {
val producerSettings = ProducerSettings(system, new StringSerializer, new StringSerializer)
.withBootstrapServers("localhost:9092")
seq.map(alpakka => new ProducerRecord[String, String]("alpakkas", alpakka.asJson.noSpaces))
.runWith(Producer.plainSink(producerSettings))
}
我使用circe将case类转换为json。但是,我不断收到一个编译器错误:
Error:(87, 34) type mismatch;
found : akka.stream.scaladsl.Sink[org.apache.kafka.clients.producer.ProducerRecord[String,String],scala.concurrent.Future[akka.Done]]
required: org.apache.kafka.clients.producer.ProducerRecord[String,String] => ?
.runWith(Producer.plainSink(producerSettings))
我不知道发生了什么事!
1条答案
按热度按时间zwghvu4y1#
你想建立一个
Graph
从Seq
而不是Source
.你的方法
connectEntriesToProducer
应该看起来像注意,
Source
而不是Seq
.或者,您可以从
Seq
,但你必须使用immutable.Seq
自Source.apply
只需要一个不变的iterable。