apache-kafka - Kafka-Streams 保持输入分区
问题描述
我想知道是否有一种“好”的方法可以将一条消息从 Kafka-streams 中写入到同一个分区(编号)。我有两个主题具有相同数量的分区和单个用户的消息,其中一个用户的所有消息都必须位于同一分区中,以避免该用户的消息乱序。目标分区必须与输入分区相同,输出监控才能正常工作。
我知道如果我使用处理器 API,我可以通过 ProcessorContext 访问处理器中的源分区。但在 StreamsPartitioner 中,我只有键、值和分区数。我可以编写一个处理器,它接受输入分区并将其写入密钥,因为我们不使用它 ATM 并且它只包含 null。但这感觉真的很糟糕,因为一个分区中的每条记录都将具有相同的密钥,并且仅在我们需要密钥来包含一些真实数据时才有效。
我还可以解析该值并提取用于计算分区的 id,但这感觉非常糟糕,因为它涉及字符串解析,而且似乎没有必要,因为我在处理器中已经有了分区。
有没有办法以不涉及解析我在滥用密钥之前序列化的消息的方式保持流的分区不变?
解决方案
推荐阅读
- angular - 如何在不在模板中的组件中使用模板文字(使用反引号)中的角度 7 日期管道
- java - 如何将改造回调响应中的回调从 java 转换为 Kotlin
- reporting-services - 下一个页面上的 SSRS 重复组标题
- encryption - 如何将 Amazon SES 与加密存储桶集成?
- docker - Docker run parameters in Dockerfile
- r - 函数返回 R 中的二次矩阵
- android - 解析键值对json的简单方法
- reactjs - 如何正确地将谷歌 API 与 React 集成
- html - using date picker how to disable the range date in angular6?
- scala - 如何在 Chisel3 中使用实验功能?