在kafka中替换SimpleConsumer.send?

时间:2017-09-29 14:45:44

标签: scala apache-kafka

SimpleConsumer已在kafka中弃用,org.apache.kafka.clients.consumer.KafkaConsumer是替代品。但是,它没有发送(...)功能。如何使用新的KafkaConsumer重写下面的代码?

import scala.concurrent.duration._
import kafka.api.TopicMetadataRequest
import kafka.consumer.SimpleConsumer
....
val consumer = new SimpleConsumer(
    host = "127.0.0.1",
    port = 9092,
    soTimeout = 2.seconds.toMillis.toInt,
    bufferSize = 1024,
    clientId = "health-check")

// this will fail if Kafka is unavailable
consumer.send(new TopicMetadataRequest(Nil, 1))

2 个答案:

答案 0 :(得分:1)

没有直接替代方法,这取决于你想做什么。 如果您需要所有分区信息,那么new api

中的consumer.partitionFor(topic)方法

答案 1 :(得分:1)

您可以使用.partitionsFor.listTopics

获取主题元数据