【问题标题】:Approaches on running Kafka Producer/Listener on Serverless Architecture / Lambda在无服务器架构/Lambda 上运行 Kafka Producer/Listener 的方法
【发布时间】:2021-04-23 11:17:24
【问题描述】:

我有一个完全围绕 AWS Lambda 构建的微服务架构,还包括一个通过 SQS 松散耦合到业务 lambda 函数的生产者/侦听器。它通过以下方法运行良好:

  • lambda 的保留并发数为 1
  • 通过 CloudWatch Events 每 1 分钟触发一次:由于最大并发数为 1,如果一个实例正在运行,如果已配置函数,则不会进行并行调用
  • 如果函数接近 15 分钟的超时时间,它将优雅地自行关闭

我还没有遇到任何麻烦,而且该解决方案确实具有成本效益,但正如您可能已经注意到的那样,至少存在一个主要缺点:消费者/生产者将处于“离线”状态每约 15 分钟(Lambda 的最大执行时间)到 1.x 分钟(下一次 CloudWatch 调用可能需要长达 59 秒 + 引导生产者/侦听器)。

我没有任何严格的实时要求,但我确信有更好的方法或改进,而无需切换到在 ECS 中运行容器,这是我真正想避免的。

我有什么选择?

【问题讨论】:

    标签: amazon-web-services lambda serverless serverless-architecture


    【解决方案1】:

    我可以从您的 SQS 推荐您可以订阅 SNS 主题,并从您的 SNS 中订阅您的 lambda,这是您可以利用每秒 30k 事务的 SNS 功能。

    【讨论】:

      【解决方案2】:

      为什么要为 SQS 实现自己的消费者/侦听器? FaaS 最好的部分之一是它与 SQS 等事件源的原生集成。因此,只需将您的函数与 SQS 挂钩即可。

      https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource

      如果你想使用 lambda 来消费 Kafka,也可以集成,https://aws.amazon.com/blogs/compute/using-self-hosted-apache-kafka-as-an-event-source-for-aws-lambda/

      【讨论】:

        猜你喜欢
        • 2015-05-19
        • 1970-01-01
        • 2017-06-11
        • 1970-01-01
        • 2023-03-15
        • 2021-09-02
        • 2018-05-07
        • 2021-11-25
        • 1970-01-01
        相关资源
        最近更新 更多