2015-10-09 159 views
1

我试图建立一个卡夫卡镜像机制的所有消息,但似乎从源头卡夫卡集群卡夫卡MirrorMaker消费者仅从新传入的数据尽快读的专题视镜制造商的过程开始,也就是说,它不会先前在主题中读取历史保存的数据。卡夫卡MirrorMaker的消费者不取出由主题

我使用卡夫卡MirrorMaker类作为:

/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config consumer.config --num.streams 2 --producer.config producer.config --whitelist=".*"

consumer.config从卡夫卡源群集读,如:

zookeeper.connect=127.0.0.1:2181

zookeeper.connection.timeout.ms=6000

group.id=kafka-mirror

producer.config设置,以产生新的卡夫卡镜像集群:

metadata.broker.list=localhost:9093

producer.type=sync

compression.codec=none

serializer.class=kafka.serializer.DefaultEncoder

有没有一种方法来定义卡夫卡MirrorMaker消费者从我的主题开始阅读来源Kafka集群?有点奇怪,因为我在consumer.config设置已经定义了一个新的消费群体(kafka-mirror),所以消费者应该只从offset 0读,即从主题的开始。

非常感谢提前!

回答

4

看卡夫卡的消费配置auto.offset.reset参数。

从卡夫卡文档:

auto.offset.reset最大

怎么办时,没有初始的动物园管理员或者如果 误差是超出范围:自动:最小 *复位偏移到最小的偏移 *最大:自动复位偏移量最大偏移 *别的:抛出异常给消费者。如果将此设置为最大,那么消费者可能会在其订阅的主题的 分区数在代理上发生变化时丢失一些消息。为了防止 分区添加过程中数据丢失,设置auto.offset.reset到 最小

因此,使用smallest用于auto.offset.reset应该解决您的问题。

+0

遇到同样的问题,试过这种相同的解决方案。没有骰子。任何其他想法? –