java - Kafka 2.1.0 Java 消费者与 Scala 消费者

标签 java scala apache-kafka

我想将我团队的 Kafka 集群从版本 0.10.1.1 升级到版本 2.1.0。顺便说一句,Kafka官方文档说了下面的话。

Kafka Official Docu

Note that the older Scala clients, which are no longer maintained, do not support the message format introduced in 0.11, so to avoid conversion costs (or to take advantage of exactly once semantics), the newer Java clients must be used.

我不是很理解这句话。目前我们的团队正在使用用 Scala 编写的 Kafka 消费者应用程序。但是我们应该把它变成 Java 吗?如果我们目前使用Scala编写的应用程序,我不知道它到底会有什么缺点。

最佳答案

我认为您混淆了 Kafka 核心模块中基于 Scala 的旧kafka.consumerkafka.producer 包与新的 kafka -clients 依赖,在 Java 中实现。

如果你的导入就是这些,你就可以了,不需要使用不同的类,并且可能只需要在升级后重写一些方法调用的参数

org.apache.kafka.clients.consumer.KafkaConsumer
org.apache.kafka.clients.producer.KafkaProducer

should we turn this into Java? If we use the application written in Scala at present, I do not know exactly what disadvantages it can have

Java 更冗长,并且没有像 Scala 那样好的类型系统。欢迎您在 Scala、Kotlin、Clojure 等中编写相同的代码...归根结底,它都在 JVM 中运行

关于java - Kafka 2.1.0 Java 消费者与 Scala 消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54018976/

相关文章:

scala - 阅读比 CPU 核心数更多的 Kafka 主题

java - 解析包含超链接的 xml 字符串

斯卡拉 3 : Create Expr[ Int => Int ]

java - 如何使用普通 Java 类从 web.xml 读取上下文参数值

Scala Futures - flatMap 和 onFailure

scala - 如何在自定义 sbt 命令中设置 javaOptions

java - 为每个请求创建新的 Kafka Producer 对象

java - 在 Kubernetes 上使用 Kafka 进行 Spark 作业

java - 使用数据库函数的JPA查询使用特定索引

java - System.exit(0); 之间的区别和 Platform.exit();?