Kafka + AWS lambda

lol*_*lix 14 amazon-web-services apache-kafka aws-lambda

是否可以将AWS Lambda与Apache Kafka集成?我想把一个消费者放在一个lambda函数中.当消费者收到消息时,lambda函数执行.

dar*_*ous 12

继续阿拉法特的观点.我们已成功构建了一个使用AWS Lambdas从Kafka消费的基础架构.这里有一些问题:

  • 确保在消费时一直批量和提交.
  • 如果要将批次存储到s3,请确保清除文件描述符.
  • 如果要将批次转发到其他服务,请确保清除变量.AWS Lambda中的变量缓存可能导致内存溢出.
  • 一个好主意是检查你从contextLambda中的对象离开多少时间,给自己一些摆动空间,用你在消费者中填充的缓冲区做一些事情,除非你打电话,否则可能无法读取到文件close().

我们正在使用Apache Airflow进行调度.我听说cloudwatch也能这样做.


Ara*_*nde 5

是的,在 AWS Lambda 函数中有一个 Kafka 消费者是很有可能的。

但是请注意,您将无法使用某种通知来调用 lambda。您将不得不轮询 Kafka 主题。最简单的方法是使用Scheduled Lambda


Geo*_*ff 5

这是有关计划的lambda的 AWS 文章

鉴于您的Kafka安装将在VPC中运行,因此最佳实践是将Lambda也配置为在VPC中运行-这将简化运行Kafka的EC2实例的安全组配置。

是有关将Lambda配置为在VPC中运行的AWS博客文章。


小智 5

如果您在 AWS (MSK) 中使用托管 apache kafka:

自 2020 年 8 月起,您可以连接 AWS Managed Streaming for Kafka (MSK) 作为事件源。不是您自己安装的 kafka 集群,但如果您已经使用 AWS 托管的 kafka,这可能很有用。

公告中的更多信息https://aws.amazon.com/about-aws/whats-new/2020/08/aws-lambda-now-supports-amazon-managed-streaming-for-apache-kafka-as-an-事件源/

AWS 控制台的屏幕截图: 从 kafka 集群添加触发器时 AWS 控制台的屏幕截图


Che*_*ole 5

AWS 现在支持“自托管 Apache Kafka 作为 AWS Lambda 的事件源”

当您创建新的 Lambda 时,在“配置”选项卡中单击“添加触发器”,您现在可以选择并配置您的自托管 Apache Kafka。

欢迎在这里阅读更多内容:

https://aws.amazon.com/blogs/compute/using-self-hosted-apache-kafka-as-an-event-source-for-aws-lambda/

https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html