apache-kafka - Kafka 流状态存储分布
问题描述
我有一个在多个实例上运行的 kafka 应用程序,我想使用状态存储来缓存一些数据字段。在多个应用程序实例的情况下,如果一个实例出现故障,一个实例的本地状态存储是否会复制到另一个实例?当实例返回时会发生什么?状态存储如何连接到数据键以进行正确的重新分配?
解决方案
如果一个实例出现故障,一个实例的本地状态存储是否被复制到另一个实例?
如果您没有备用副本,那么该任务将从一开始就读取更改日志主题以重建存储,有效地制作副本,是的。
在文档中,
从 2.6 开始,Kafka Streams 将保证仅将任务分配给具有完全捕获的本地状态副本的实例(如果存在这样的实例)。在失败的情况下,备用任务将增加存在被捕获实例的可能性
状态存储如何连接到数据键以进行正确的重新分配?
分区映射到任务线程(参考同一页)。
推荐阅读
- firebase - 通过 Flutter 获取 Firebase 存储中已存储文件的 URL
- c# - C# 如果数组通过引用传递,为什么必须使用修饰符 ref 传递参数数组?
- agda - 在 Agda 中证明当且仅当的错误情况
- python - scrapy 视图是否使用活动项目设置?
- java - 在 Dataflow 中运行 Apache Beam Pipeline 时出现 SSLHandshakeException
- mysql - 计算2个日期之间的年差,0年为1年
- javascript - 如何在 JavaScript 中从视频帧中提取 Blob
- html - 如何仅使用 CSS 更改悬停时的图像源
- python - 在 Python 中导入 pmdarima.arima 库时出错
- c# - 从 MS Access 获取表名