我想将团队的Kafka集群从版本0.10.1.1升级到版本2.1.0。顺便说一下,卡夫卡官方文件说了以下话。
请注意,不再维护的较旧的Scala客户端不支持0.11中引入的消息格式,因此,为避免转换成本(或仅利用一次语义即可),必须使用较新的Java客户端。
我不太理解那句话。目前,我们的团队正在使用用Scala编写的Kafka Consumer Application。但是我们应该把它变成Java吗?如果我们目前使用Scala编写的应用程序,我不完全知道它可能有什么缺点。
答案 0 :(得分:2)
我认为您将Kafka核心模块中基于Scala的旧kafka.consumer
和kafka.producer
软件包与Java中实现的新kafka-clients
依赖相混淆。
如果您导入的是这些,就可以了,并且不需要使用其他类,并且可能只需要在升级后重新编写方法调用的一些参数即可
org.apache.kafka.clients.consumer.KafkaConsumer
org.apache.kafka.clients.producer.KafkaProducer
我们应该把它变成Java吗?如果我们目前使用Scala编写的应用程序,我不完全知道它有什么缺点
Java更为冗长,并且没有像Scala那样好的类型系统。欢迎您使用Scala,Kotlin,Clojure等编写相同的代码。总而言之,它们都在JVM中运行