升级到"新的Apache Kafka客户消费者"版本0.10。从版本0.9和#34; Apache Kafka客户消费者"

时间:2017-03-08 04:21:34

标签: apache-kafka

我目前的产品是Apache Kafka Clients Consumer 0.9。我打算升级到New Apache Kafka Clients Consumer 0.10.1.0。我已经完成了API更改的开发,并且产品正在使用来自Kafka代理(v.0.10)的消息,因此我不知道如何替换它。

我担心的是,只需用New Kafka Consumer 0.10.1替换升级产品,是否可以保证安全。当然,现有产品将不得不解决,消费者群体将是相同的。

API更改如下。

// OLD KAFKA CONSUMER API
val consumerConnector = Consumer.create(consumerProperties)
val kafkaStreams: List[KafkaStream[Array[Byte], Array[Byte]]] = consumerConnector.createMessageStreams(threadCount).get(topic).get

kafkaStreams map (stream => {
    val iterator: ConsumerIterator[Array[Byte], Array[Byte]] = stream.iterator

    while (true) {
        // process iterator.next.message
    }
})

// NEW KAFKA CONSUMER API
val kafkaConsumerList = List[KafkaConsumer[Array[Byte], Array[Byte]]

for (i <- 1 to threadCount) {
    val kafkaConsumer: KafkaConsumer[Array[Byte], Array[Byte]] = new KafkaConsumer[Array[Byte], Array[Byte]](consumerProperties)
    kafkaConsumerList = kafkaConsumer :: kafkaConsumerList
}

kafkaConsumerList map (consumer => {
    consumer.subscribe(topics)

    while (true) {
        val records: ConsumerRecords[Array[Byte], Array[Byte]] = consumer.poll(pollTimeout)

        while (records.iterator.hasNext) {
            // process records.iterator.next.value
        }
    }
})

作为参考,我正在使用自动偏移方法,我将继续这样做。

0 个答案:

没有答案