java - 为什么要使用我们自己的 Kafka 偏移存储库
问题描述
我目前正在尝试为项目配置 Kafka。我对偏移存储库有点困惑。我知道这两个开箱即用的选项存储在 Kafka 或 Zookeeper 中,我还发现还有另一个选项(至少如果我们将 kafka 与 Apache camel 结合使用)我还可以在任何地方定义和初始化我自己的存储库文件系统。
我的问题是:是否存在存储在 Kafka 或 Zookeeper 中的偏移存储库不持久或不一致的情况?我最关心的是系统的任何部分(消费者、生产者、kafka 实例或 zookeeper 实例)意外关闭的情况。一旦这些组件重新启动,消费者会得到它停止从主题读取的偏移量吗?
共享卷/存储上的显式存储库是否有意义?
如果我的问题有任何不清楚的地方,请告诉我。
解决方案
您可以将偏移量存储在应用程序附近并设置偏移量值以开始使用来自 Kafka 的记录。这一切都取决于你想做什么。
是否存在存储在 Kafka 或 Zookeeper 中的偏移存储库不持久或不一致的情况?
我现在什么都不记得了。
我最关心的是系统的任何部分(消费者、生产者、kafka 实例或 zookeeper 实例)意外关闭的情况。一旦这些组件重新启动,消费者会得到它停止从主题读取的偏移量吗?
这取决于您的应用程序的配置。如果您的应用程序在无法连接到 Kafka 时崩溃,并且应用程序配置为从EARLIEST
. 您将开始使用有关该主题的最早可用记录。
如果您使用LATEST
.
如果您想跳到主题中保存的最新记录,您需要告诉您的消费者..
#example
//seek to end of the topic
consumer.seekToEnd();
请在 Confluent 网站和 Apache Kafka 网站上找到有关它的更多详细信息。
推荐阅读
- c - 矩形选择算法
- formatting - “用户定义”单元格格式中的下标
- python-3.x - 如何在 python 3 上通过管道获取 git receive-pack 上的 git 操作?
- python - 正则表达式检查字符串是否符合某些条件
- c# - 如何从 c# 进行 mysql 查询并将其保存在变量中?
- dart - Dart 中的 HttpServer 流返回什么样的错误
- reactjs - 使用 Reducer 更新数据库
- c++ - 理解递归背包
- matlab - 我的 for 循环的 Matlab 代码中有一些错误。我想问是否有人知道错误在哪里
- excel - 跨多个工作表删除表中的空行