我只是从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编写的。
答案 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及更高版本)也将继续工作。