当 S3 上有新文件时,在 Kafka 上获取事件/消息

Cow*_*org 1 amazon-s3 apache-kafka confluent-kafka-dotnet

我对 AWS 很陌生,对 Kafka 也很陌生(使用 Confluence 平台和 .NET)。

我们将接收大文件 (~1-40+Mb) 到我们的 S3 存储桶,并且其消费端应该处理这些文件。我们将通过 Kafka 发送所有消息。

我读过你不应该通过 Kafka 发送大文件,但也许我在这里被误导了?

如果我们只想获取一个新文件已到达我们的 S3 存储桶的事件(当然还有对其的某种引用),我们该怎么办?

Jav*_*cal 7

您可以接收有关 S3 存储桶中发生的事件的通知,例如创建/删除新对象等。

根据 S3 文档(截至撰写本文时),支持以下目标:

  1. 简单通知服务(SNS)
  2. 简单队列服务 (SQS)
  3. AWS Lambda 函数

例如,您可以选择 SQS 作为 S3 通知目标,并使用 Kafka SQS Source Connector 将事件流式传输到 Kafka。然后,您可以编写对此事件做出反应的Kafka 消费者应用程序。

是的,不建议通过 Kafka 发送大文件。只需向它们发送指针并让消费者应用程序使用这些指针获取信息即可。如果您是消费者想要获取一些 s3 对象,请将您的消费者配置为使用 S3 SDK。

有用的资源:

  1. 在 S3 中启用事件通知
  2. S3 通知事件结构 (JSON) 及示例
  3. Kafka SQS 源连接器