首页 > 解决方案 > 为什么要使用我们自己的 Kafka 偏移存储库

问题描述

我目前正在尝试为项目配置 Kafka。我对偏移存储库有点困惑。我知道这两个开箱即用的选项存储在 Kafka 或 Zookeeper 中,我还发现还有另一个选项(至少如果我们将 kafka 与 Apache camel 结合使用)我还可以在任何地方定义和初始化我自己的存储库文件系统。

我的问题是:是否存在存储在 Kafka 或 Zookeeper 中的偏移存储库不持久或不一致的情况?我最关心的是系统的任何部分(消费者、生产者、kafka 实例或 zookeeper 实例)意外关闭的情况。一旦这些组件重新启动,消费者会得到它停止从主题读取的偏移量吗?

共享卷/存储上的显式存储库是否有意义?

如果我的问题有任何不清楚的地方,请告诉我。

标签: javaapache-kafkaapache-camelkafka-consumer-api

解决方案


您可以将偏移量存储在应用程序附近并设置偏移量值以开始使用来自 Kafka 的记录。这一切都取决于你想做什么。

是否存在存储在 Kafka 或 Zookeeper 中的偏移存储库不持久或不一致的情况?

我现在什么都不记得了。

我最关心的是系统的任何部分(消费者、生产者、kafka 实例或 zookeeper 实例)意外关闭的情况。一旦这些组件重新启动,消费者会得到它停止从主题读取的偏移量吗?

这取决于您的应用程序的配置。如果您的应用程序在无法连接到 Kafka 时崩溃,并且应用程序配置为从EARLIEST. 您将开始使用有关该主题的最早可用记录。

如果您使用LATEST.

如果您想跳到主题中保存的最新记录,您需要告诉您的消费者..

#example
//seek to end of the topic
consumer.seekToEnd();

请在 Confluent 网站和 Apache Kafka 网站上找到有关它的更多详细信息。


推荐阅读