Kafka:是否有适用于Scala的Kalfa客户API?

时间:2019-05-17 06:12:10

标签: scala apache-kafka kafka-producer-api

我只是从Kafka开始,这听起来对微服务确实很好,但是我基本上在Scala工作。

我通过以下方式将kafka添加到我的sbt项目中:


@Bean
public ReactorNettyWebSocketClient reactorNettyWebSocketClient(@Qualifier("nettyClientOptions") Consumer<? super HttpClientOptions.Builder> options) {
    return new ReactorNettyWebSocketClient(options);
}

然后我这样做:

libraryDependencies += "org.apache.kafka" %% "kafka" % "2.0.0"

我的问题是,调用import org.apache.kafka.clients.producer.{Callback,KafkaProducer, Producer} ... val producer = new KafkaProducer[String, String](props) val record = new ProducerRecord[String, String]("my-topic", "key", "value") val fut = producer.send(record, callBack) ... 时没有得到Scala Future,它是Java producer.send。我不知道Java Futures是如何工作的,我希望跳过该学习过程。这次是Future,但我的意思是Java。

所以我想知道是否有完整的Scala API与Kafka一起使用。通常是这样,因为Kafka是用Scala编写的。

1 个答案:

答案 0 :(得分:1)

来自Kafka notable changes in 2.0.0

  
      
  • 从0.11.0.0版本开始不推荐使用的Scala使用者已被删除。从0.10.0.0开始,推荐使用Java使用者。请注意,即使将代理升级到2.0.0,Scala使用者1.1.0(及更早版本)也将继续工作。

  •   
  • 从0.10.0.0版本开始不推荐使用的Scala生产者已被删除。从0.9.0.0版本开始,推荐使用Java生产者。请注意,Java生产者中默认分区程序的行为与Scala生产者中默认分区程序的行为不同。迁移的用户应考虑配置保留以前行为的自定义分区程序。请注意,即使将代理升级到2.0.0,Scala生产者(1.1.0及更高版本)也将继续工作。

  •