卡夫卡文件流处理

3
考虑以下场景。我有一个用于吸收冲击的Kafka代理和许多客户端,他们向我发送分割成文件user1.r01、user1.r02...(每个文件大小为128KB)的user1.rar文件。将其消费到一个主题中效果非常好,但问题在于我需要在拓扑结构下游解压缩这些文件并将结果流式传输到最终存储位置。
坏处在于我没有用于存储一个用户所有rar文件的操作性存储器。在kafka中是否有一种方法可以简化一个主题中的文件,以便我可以进行流式解压缩?我很担心如果:
  • 我使用一个消费者,一旦1000个用户开始流式传输,rXX文件将在主题中混合,会使其RAM超负荷
  • 如果我使用多个消费者,我认为kafka没有“智能路由”,所以我只能在一个消费者中读取一些与一个用户/用户组相关的键 + 当其中一个消费者死亡时如何进行重新平衡和重置...
是否有任何模式可以处理这种情况?
谢谢!
1个回答

0

我对这一切都比较新,但我已经稍微了解了一下Kafka,如果我正确理解Kafka文档,您需要使用连接器/任务(https://kafka.apache.org/documentation/#connect_overview - 参见第8.3章),更具体地说,是SourceConnector/SourceTasks,因为您可以为连接器定义最大任务数(“tasks.max”),并且结合SourceConnector/SourceTasks的轮询特性,可以防止服务器过载。如果我正确理解文档,处理完任务后应将其删除。

我真的很新,但我希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接