连接到Azure缓存服务大约需要3.3秒

Gor*_*ski 5 connection-pooling azure azure-caching

在我们仍在开发的项目中,我们注意到在访问ASP.NET Web API服务时突然出现延迟.使用令人敬畏的Mini Profiler,我们确认这些延迟是在删除与Azure数据缓存(预览)服务的连接并且必须重新建立时引起的.此过程大约需要3.3秒.重新连接后,从缓存中获取对象需要1.4毫秒.

当我将maxConnectionsToServer从1增加到20时,我注意到了另一件事.如果我没有向Web API发出1或2分钟的请求(通常是连接断开时),然后开始拨打电话,接下来的20个请求会延迟3.3秒,这就是连接池的工作原理我想(圆形 - 从池中删除连接).

Web API和缓存服务都托管在美国东部地区,我们已禁用本地缓存,禁用SSL,启用自动发现.

所以,我想知道我们的配置是否有问题,或者这是因为Azure Cache仍在预览中?

任何信息都将被重视.

谢谢!

MOv*_*und 0

听起来您的共享缓存由于不活动而被卸载。测试此功能的一种方法是将角色内缓存添加到现有服务(如果可用)并将缓存使用量交换到此新缓存。角色内缓存在此处进行了描述。

一旦缓存从共享产品中移出,请等待必要的 1-2 分钟空闲超时,然后重试连接,不应出现延迟。

假设您在隔离问题后想坚持使用共享缓存选项,我所知道的当前唯一解决方法是运行一个后台任务,该任务将定期 ping 缓存以使其保持活动状态。

如果您正在运行完整的 Web 角色,您可以在应用程序启动时启动后台任务。
如果您通过移动服务进行部署,则可以通过计划作业运行“ping”。您可能在这里遇到的唯一问题是计划作业的最短时间为 1 分钟,这可能不足以让缓存在 100% 的时间内保持活动状态。