`

kafka客户端版本选择

阅读更多

在用maven引入kafka客户端时,以如下版本为例,会有两个版本号2.10  , 0.10.1.0 很让人疑惑。

<dependency>

    <groupId>org.apache.kafka</groupId>

    <artifactId>kafka_2.10</artifactId>

    <version>0.10.1.0</version>

</dependency>

然后在依赖lib下会产生两个jar

2.*版本的是scala客户端,1.*版本的是java客户端 ,两个都可以在java环境中使用,调用方式却有不同

scala版本的producer

val kafkaConfig =KafkaUtils.buildKafkaConfig("kafkahost",9092)val producer =newProducer[String,String](newProducerConfig(kafkaConfig))// ... somewhere in code 
producer.send(newKeyedMessage[String,String]("my-topic", data))

java 版本的producer

val kafkaConfig =KafkaUtils.buildKafkaConfig("kafkahost",9092)val producer =newKafkaProducer[String,String](kafkaConfig)// ... somewhere in code 
producer.send(newProducerRecord[String,String]("my-topic", data))

 到底改用哪种方式呢?原来这两种方式是新老两种api。scala版本是老的api,java版本是新的api。官方推荐使用java版本。

官方解释如下

We are in the process of rewritting the JVM clients for Kafka. As of 0.8.2 Kafka includes a newly rewritten Java producer. The next release will include an equivalent Java consumer. These new clients are meant to supplant the existing Scala clients, but for compatability they will co-exist for some time. These clients are available in a seperate jar with minimal dependencies, while the old Scala clients remain packaged with the server.

 

具体参见:http://kafka.apache.org/082/documentation.html#producerapi

 

 

 

  • 大小: 2.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics