Lambda函数在与redis的简单连接上超时

时间:2016-04-14 14:30:55

标签: node.js heroku lambda redis timeout

我有一个非常小的lambda函数,其唯一目的是从Segment.io接收webhook,并通过HSET向Redis哈希添加用户ID和时间戳。

此过程是合理的量,每分钟100-200个请求。但出于某种原因,我在Lambda函数上设置的5秒限制中观察了许多HSET请求的时间。

image

我正在使用Heroku Redis的免费套餐。我联系了Redis显示器,这就是我所看到的:

Redis

所以看起来Redis没有超时,但更多的是Lambda遇到了问题,或者由于某种原因,Lambda无法与Redis建立连接并且超时 - 但我和#我不确定。

这里发生了什么?这是Heroku Redis的已知问题,我应该尝试别的吗?我想使用Heroku Redis的原因是我使用Heroku Links(外部数据包装器),但我也可以使用外部Redis实例设置FDW。

更新 我尝试将它从Lambda移到一个单独的微服务服务器(一个Heroku服务,以保持一致)。我看到了重复超时的完全相同的问题,Redis没有缓慢操作的记录。将New Relic添加到服务器只显示了令人难以置信的指标 - 就New Relic而言,每个请求在5ms内完成,这意味着在应用程序之前发生超时。是否有可能在路由层发生这种情况?或者那个(令人难以置信地,对我来说)节点不知何故不能每秒扩展到这个数量的请求?

1 个答案:

答案 0 :(得分:0)

这对我们来说只是一个愚蠢的错误 - 服务器在某些情况下从未向客户端返回响应,因此它超时了。