Kafka和clojure没有订阅KafkaConsumer对象的方法

时间:2016-07-15 07:42:21

标签: java clojure apache-kafka

嗨,我有一个非常奇怪的问题,

我无法从clojure调用kafkaconsumber对象上的methon订阅。以下是我的代码。

(.subscribe (KafkaConsumer. {"bootstrap.servers" "127.0.0.1:9092"
                           "key.deserializer" "org.apache.kafka.common.serialization.StringDeserializer"
                           "value.deserializer" "org.apache.kafka.common.serialization.StringDeserializer"
                           "partition.assignment.strategy" "roundrobin"
                           "group.id" "clj-kafka.consumer"
                           "auto.offset.reset" "smallest"
                           "auto.commit.enable" "false"}) ["test"]))

我在project.clj中定义的kafka版本是

[org.apache.kafka/kafka_2.10 "0.9.0.1"]

为了安全起见,我已经为我的对象转储了可用的确切方法,而subscribe就是其中之一,这意味着它只能是一个参数问题?

https://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html这是我正在使用的文档。

欢迎任何想法。

1 个答案:

答案 0 :(得分:1)

在Kafka if IDed in d: y = d[IDed] closest = min(y, key=lambda x:abs(x-pos)) 客户端不再包含在Kafka核心模块中,但包含在自己的模块0.9.x中。

因此,您应该包含kafka-clients而不是[org.apache.kafka/kafka-clients "0.9.0.1"]

顺便说一句:在kafka_2.10中,参数0.9.x的值应为auto.offset.resetearliestlatest(而不是none值{ {1}}和0.8.x)(请参阅https://kafka.apache.org/090/documentation.html#newconsumerconfigs