微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扩展 Kafka Connect 以处理 10K S3 存储桶

如何解决扩展 Kafka Connect 以处理 10K S3 存储桶

我想将各种 S3 存储桶(超过 10,000 个存储桶,每个文件大约 20-50MB)中的数据加载到 Apache Kafka。存储桶列表是动态的 - 存储桶在运行时添加删除。理想情况下,每个存储桶配置都应该有自己的轮询间隔(扫描新文件的频率 - 至少 60 秒,但可能更多)和优先级(正在处理的并发文件数)。

请注意,由于每个存储桶所有者的组织中存在各种 IT 政策,因此无法设置从每个 S3 存储桶到 SQS/SNS/Lambda 的通知

Kafka Connect 似乎是此类任务最常用的工具,它的可插拔架构将使未来添加新源变得更加容易,因此非常适合。将每个 S3 存储桶配置为自己的连接器将使我能够为每个任务设置不同数量的任务(映射到优先级)和轮询间隔。为我预期的文件格式构建 Java 自定义 Kafka Connect 源任务听起来很合理。

但是,Kafka Connect code 表示每个正在运行的任务在任务的生命周期内都分配有自己的线程。因此,如果我有 10K 个存储桶,每个存储桶都配置有自己的连接器和单个任务,那么我的 Kafka Connect 分布式工作池中将有 10K 个线程在运行。有很多线程大多只是 sleep()-ing。

在 Kafka Connect 中扩展任务/连接器数量的正确方法是什么?

解决方法

Kafka Connect 是分布式框架,可以作为独立模式或分布式工作,作为分布式框架,您正在从多个商品服务器创建 kafka 连接集群,每个服务器都托管 kafka 连接实例并且可以执行连接器的任务,如果您需要更多功能您可以添加更多托管连接实例的服务器,

阅读 S3 源连接器文档我没有找到“白名单”/“正则表达式”的方法来从多个存储桶中读取它...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。