apache-kafka - Kafka Streams - 任务/分区/处理器关系
问题描述
我正在使用低级 API 处理器。我有一个包含 6 个分区的主题。在实现 的类中Processor<K,V>
,我定义了一些类变量(非静态)。我知道会有6个任务。当我们启动流应用程序时,我看到有 6 个对象正在实例化,这些对象实现了Processor<K,V>
. 我们可以将这些对象实例与任务联系起来吗?在重新平衡期间,我假设分区可以在单独的线程或另一个实例上从一个任务切换到另一个任务。Processor<K,V>
如果是这样,是否会为实现在不同线程或实例上重新分配的分区的类实例化一个新对象,并在与该分区对应的现有对象上调用 close 方法?
解决方案
如果一个任务从一个线程移动到另一个线程,该任务将被关闭并创建一个包含新处理器对象的新任务。
因此,所有局部成员变量在设计上都是短暂的。
如果您需要在重新平衡之间保留任何状态,则需要将存储附加到Processor
.
推荐阅读
- python - 如何将元组 cursor.fetchall 列表转换为不同的格式
- c# - C# MVC 控制器返回拒绝访问
- cognos - Cognos Analytics 服务器安装文件未显示许可协议
- java - 列表大小仅在调试模式下捕获
- c - 需要帮助在 C 中逐个字符地读取文件
- swift - 在 Swift 中使用泛型实现装饰器模式
- makefile - Automake 不在子目录中生成 Makefile.in --- 但仅在 GitHub Actions 上
- node.js - conv.followup 在对话流中不工作
- docker - 如何使用任何自定义/插件 amp 文件为 Alfresco 6.2 创建自定义 docker 映像
- button - React:样式化组件加载按钮