2016-04-14 27 views
1

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

这个过程是合理的量,每分钟100-200个请求。然而,由于某种原因,我观察到许多HSET请求超出了我在Lambda函数上设置的5秒限制。

image

我使用的Heroku Redis的自由层。我迷上了Redis的监控,这是所有我看到:

Redis

因此,它似乎并不像Redis的是时机了,但更多的是拉姆达有一个问题,或者由于某种原因不能LAMBDA不会与Redis建立连接并超时—,但我不确定。

这是怎么回事?这是Heroku Redis的一个已知问题,我应该尝试其他方法吗?我希望使用Heroku Redis的原因是我使用Heroku Links(外部数据包装器),但我也可以使用外部Redis实例设置FDW。

更新: 我试着动这一关拉姆达到一个单独的microService服务器(Heroku的服务,要一致)。我看到了重复超时的完全相同的问题,Redis没有缓慢操作的记录。向服务器添加New Relic仅显示出令人难以置信的指标 - 就New Relic而言,每个请求在5ms内完成,这意味着超时在应用程序之前发生。这是否可能发生在路由层?或者,对我来说(难以置信的是)节点以某种方式不能缩放到每秒这个数量的请求?

+0

散列的大小,多少个密钥? – Niloct

+0

它有所不同,但我每10分钟清除一次,所以不会很大。现在它有2个键,我仍然看到超时。 – jdotjdot

+0

免费套餐上的连接限制为20.尝试将您的实例升级几分钟,然后再次运行您的基准测试。 – Niloct

回答

0

这只是我们部分的一个愚蠢的错误—服务器在某些情况下没有返回客户端响应,因此超时。

相关问题