【问题标题】:AWS Lambda fetch from ActiveMQ topicAWS Lambda 从 ActiveMQ 主题中获取
【发布时间】:2016-01-17 07:41:41
【问题描述】:

我有一个外部数据源作为 ActiveMQ 主题。我只能连接和消费消息。它们很少出现,大约每 10-30 秒 1 条消息。

我想收集所有的消息并将它们放入数据库。 我还想要一个可以通过 WebSockets 接收新消息并绘制图表的活动网页。

我有一个使用 Python/Flask/MongoDB/SocketIO 构建的原型,但是...

我想使用 Amazon AWS 云基础设施来避免在服务器上处理数据。

我相信 AWS Lambda 可以接受消息并将它们存储到数据库中(DynamoDB?),还可以发送通知(可能使用 SQS)被转换为 WebSocket 消息。 (目前还不是一切都清楚,也许简单的 ajax 轮询就足够了)。

这里有一个问题:如何使用来自外部 ActiveMQ 主题的消息并使用 AWS Lambda 进行处理?

我在看 Kinesis,但它看起来只支持推送给它的数据,但不支持通过某些协议轮询数据...

【问题讨论】:

    标签: amazon-web-services activemq aws-lambda


    【解决方案1】:

    您可以将 Lambda 用作类似 cron 的工具并按计划进行轮询。见Lambda Scheduled Events

    【讨论】:

    • 嗯,这将是一个很好的解决方案,谢谢,但我希望在消息到达后尽快得到通知。如果我每 1 分钟轮询一次队列 - 无论如何也不会太频繁.. 还有太多无用的 lambda 调用。
    • Lambda 是使用 AWS 服务而不是服务器执行此操作的唯一可能方法。重要的是要记住,Lambda 函数只能安排为每 5 分钟一次,但如果每个调用实际上连接到 ActiveMQ 并对其进行长时间轮询(不仅仅是检查和断开连接),则立即为接下来 5 分钟到达的每条消息提供服务分钟,然后终止,您可能在那里有一个合理可行的无服务器解决方案。
    • 是的,这也是个好主意。但是,如果我为一个长时间工作的 Lambda 收费,会不会太贵?我认为拥有一个微型 EC2 实例可能更便宜,而不是使用服务消费消息并将它们存储到数据库中..
    • 如果您的首要任务是无服务器,那么 Lambda 可能是要走的路。如果您的优先级是成本,那么比较运行 t2.nano 与定期 Lambda 调用的成本应该很简单。请注意,使用 Lambda,您可以获得一定程度的 HA 和弹性,这是您使用单一基于服务器的解决方案所无法获得的。
    • 是的,你当然是对的。我认为在这种特殊情况下,我将使用服务器,但也尝试使用 lambda 并记住这个解决方案。谢谢。
    猜你喜欢
    • 2019-03-27
    • 2017-11-28
    • 1970-01-01
    • 2017-09-21
    • 2021-07-14
    • 2012-05-04
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多