Kafka Streams:使用 at_least_once 时对状态存储的保存顺序有任何保证吗?

拉斯穆斯·隆德

我们有一个使用处理器 API 构建的 Kafka Streams Java 拓扑。

在拓扑中,我们有一个处理器,可以保存到多个状态存储中。

当我们使用 at_least_once 时,我们希望看到状态存储之间的一些不一致 - 例如,传入记录导致写入状态存储 A 和 B,但保存之间的崩溃导致只有存储 A 被写入到状态存储Kafka 更改日志主题。

  1. 我们是否保证我们保存的顺序也将是写入状态存储的顺序?例如,如果我们先保存到存储 A,然后再保存到存储 B,我们当然会出现写入两个变更日志都成功的情况,以及只完成写入变更日志 A 的情况 - 但我们也可以结束仅完成写入更改日志 B 的情况?

  2. 什么情况会导致重播?当然是崩溃 - 但是重新平衡,新的代理分区领导者,或者当我们收到“偏移提交失败”错误(请求超时)时呢?

  3. 前段时间,我们尝试使用exactly_once,这导致了很多错误消息,这对我们来说没有意义。Exactly_once 会为我们提供跨多个状态存储的原子写入吗?

巴尔托什·瓦尔津斯基

广告 3. 根据有关 Kafka Streams 中的一次性支持的原始设计文档,我认为eaxctly_once您可以跨多个状态存储进行原子写入

当 stream.commit() 被调用时,会依次执行以下步骤:

  1. 刷新本地状态存储(KTable 缓存)以确保所有更改日志记录都发送到下游。
  2. 调用 producer.sendOffsetsToTransactions(offsets) 以提交当前记录的消费者在事务中的位置。请注意,尽管线程的使用者可以在多个任务之间共享,因此多个生产者,任务的分配分区始终是独占的,因此只提交此任务分配分区的偏移量是安全的。
  3. 调用 producer.commitTransaction() 提交当前事务。结果,表示为上述三元组的任务状态是原子提交的。
  4. 再次调用 producer.beginTransaction() 开始下一个事务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用带有变更日志的 RocksDb 状态存储时,Kafka Stream 提供哪些保证?

来自分类Dev

为什么我必须使用Kafka Streams配置状态存储

来自分类Dev

Kafka Streams transform() 状态存储

来自分类Dev

Kafka Streams-添加新的源流后使用现有状态存储

来自分类Dev

使用 Akka Kafka Streams 时不兼容的等式约束

来自分类Dev

Kafka Streams - 旧状态聚合

来自分类Dev

Kafka Streams:GlobalStore 线程安全吗?

来自分类Dev

Kafka Streams - 减少大型状态存储的内存占用

来自分类Dev

使用 Kafka Streams 加入单独的主题?

来自分类Dev

Kafka Streams内部主题的更改复制因子会影响kafka Streams吗?流媒体会处于错误状态吗?

来自分类Dev

如何实现使用交互式查询存储和全局存储来处理单个主题的Kafka Streams拓扑

来自分类Dev

Kafka Streams拓扑使用不同的密钥但使用相同的架构

来自分类Dev

是否指定了Kafka Streams拓扑的处理顺序?

来自分类Dev

带窗口的Kafka Streams拓扑不会触发状态更改

来自分类Dev

停止Kafka Streams应用

来自分类Dev

Kafka Streams KGroupedTable恢复

来自分类Dev

Kafka Streams JoinWindow 的数据

来自分类Dev

Kafka Streams-我可以在生产中使用

来自分类Dev

Kafka Streams 不会使用聚合值重新启动

来自分类Dev

Kafka Streams 删除消耗的重新分区记录,以减少磁盘使用

来自分类Dev

Kafka Streams 使用的 RocksDB 文件名含义

来自分类Dev

从 Kafka Streams 反序列化对象时出错

来自分类Dev

带有 Kafka Streams 的 Scala Embedded Kafka 中的生产者错误

来自分类Dev

在Kafka Streams中重建状态存储是否会将重复的记录传播到下游主题?

来自分类Dev

如何在多个磁盘上分发Kafka-Streams状态存储

来自分类Dev

在 Kafka Streams 中查询全局状态存储会引发 Null 异常

来自分类Dev

在 Kafka Streams 应用程序中保持本地状态存储更新

来自分类Dev

Kafka Streams如何获取kafka标头

来自分类Dev

kafka-streams警告kafka连接故障

Related 相关文章

  1. 1

    使用带有变更日志的 RocksDb 状态存储时,Kafka Stream 提供哪些保证?

  2. 2

    为什么我必须使用Kafka Streams配置状态存储

  3. 3

    Kafka Streams transform() 状态存储

  4. 4

    Kafka Streams-添加新的源流后使用现有状态存储

  5. 5

    使用 Akka Kafka Streams 时不兼容的等式约束

  6. 6

    Kafka Streams - 旧状态聚合

  7. 7

    Kafka Streams:GlobalStore 线程安全吗?

  8. 8

    Kafka Streams - 减少大型状态存储的内存占用

  9. 9

    使用 Kafka Streams 加入单独的主题?

  10. 10

    Kafka Streams内部主题的更改复制因子会影响kafka Streams吗?流媒体会处于错误状态吗?

  11. 11

    如何实现使用交互式查询存储和全局存储来处理单个主题的Kafka Streams拓扑

  12. 12

    Kafka Streams拓扑使用不同的密钥但使用相同的架构

  13. 13

    是否指定了Kafka Streams拓扑的处理顺序?

  14. 14

    带窗口的Kafka Streams拓扑不会触发状态更改

  15. 15

    停止Kafka Streams应用

  16. 16

    Kafka Streams KGroupedTable恢复

  17. 17

    Kafka Streams JoinWindow 的数据

  18. 18

    Kafka Streams-我可以在生产中使用

  19. 19

    Kafka Streams 不会使用聚合值重新启动

  20. 20

    Kafka Streams 删除消耗的重新分区记录,以减少磁盘使用

  21. 21

    Kafka Streams 使用的 RocksDB 文件名含义

  22. 22

    从 Kafka Streams 反序列化对象时出错

  23. 23

    带有 Kafka Streams 的 Scala Embedded Kafka 中的生产者错误

  24. 24

    在Kafka Streams中重建状态存储是否会将重复的记录传播到下游主题?

  25. 25

    如何在多个磁盘上分发Kafka-Streams状态存储

  26. 26

    在 Kafka Streams 中查询全局状态存储会引发 Null 异常

  27. 27

    在 Kafka Streams 应用程序中保持本地状态存储更新

  28. 28

    Kafka Streams如何获取kafka标头

  29. 29

    kafka-streams警告kafka连接故障

热门标签

归档