【问题标题】:How "Real-Time" DynamoDB stream is?“实时”DynamoDB 流如何?
【发布时间】:2017-01-31 19:20:11
【问题描述】:

我们正在试验一种新的无服务器解决方案,其中外部提供商向 DynamoDB 写入数据,DynamoDB Stream 对新的写入事件做出反应,并触发 AWS Lambda 函数来传播变化?

到目前为止,它运行良好,但是,有时我们会注意到数据被延迟,例如几分钟内 Lambda 不会有任何更新。

在浏览了大量 DynamoDB Stream 文档后,他们使用的唯一术语是“近乎实时的流记录”,但一般来说“近乎实时”是什么?我们在这里看到的可能的延迟是什么?

【问题讨论】:

  • 没有来自 Lambda 的更新不一定与延迟的数据相同。 Lambda 函数可能是延迟的原因。您是否也验证过该函数之前没有被调用,可能会抛出错误,并且您获得的数据是 Lambda 重试的结果?
  • @Michael-sqlbot 不是 lambda 无状态的吗?据我了解,新的 lambda 函数执行不应该与之前运行的 lambda 有任何关系。
  • 这并不完全正确。你的代码应该这样设计,每个容器只处理一个并发调用,但容器经常被重用......所以如果你的函数有由你没有清理的东西触发的设计错误,你的函数可能会失败或在后续调用中停止.错误也会在延迟后重试。阅读您的 cloudwatch 日志,看看您是否发现任何潜在的问题迹象。

标签: amazon-web-services amazon-dynamodb real-time aws-lambda amazon-dynamodb-streams


【解决方案1】:

根据我的经验,大多数情况下它是接近实时的。但是,在极少数情况下,您可能需要等待一段时间(在我的情况下,最多半小时)。我认为这是因为 AWS 基础设施中的硬件或网络问题。

【讨论】:

    【解决方案2】:

    在大多数情况下,Lambda 函数会在您对启用 Streams 的 DynamoDB 表中的小项目进行更新后的半秒内触发。但是,当 Lambda 函数首次运行时,事件源更改、更新 Lambda 函数、更改 Lambda 执行角色等可能会引入额外的延迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多