【问题标题】:Best way to initialize initial connection with a server for REST calls?为 REST 调用初始化与服务器的初始连接的最佳方法?
【发布时间】:2014-12-12 10:41:07
【问题描述】:

我一直在构建一些连接到 SQL 后端的应用程序。我使用 ajax 调用来访问 WebMethods、WebAPI 等。

我注意到对 SQL 后端的第一次初始调用检索数据相当慢。我只能假设这是因为它必须在检索数据之前首先协商凭据。它可能会将其缓存在某个地方,因此,之后进行的任何调用都会很快返回。

我想知道是否有一种理想或最佳的方式来初始化此连接。

我的想法是在页面加载时立即进行简单的 GET 调用(抓取非常小的东西,例如单个条目)。我可能不会以任何有用的方式使用返回的数据,除非确保之后的任何调用都能更快地返回。

这是解决初始延迟的好方法吗?我很想听听其他人是如何处理这个问题的。

干杯!

【问题讨论】:

    标签: ajax rest connection database-connection


    【解决方案1】:

    您的第一次通话可能比后续通话慢的原因有很多

    • 根据您的服务器平台,可能会在首次执行时编译代码
    • 您的连接池中可能没有活动的数据库连接
    • 数据库在第一次调用时可能没有缓存索引或数据
    • 如果服务器闲置了一段时间,某些 VM 平台可能需要一段时间才能为您的服务器分配足够的资源。

    我在服务器端处理这些类型问题的一种方法是向我的 Web 服务添加启动代码,该代码在服务首次初始化时获取可能被许多调用者使用的数据(例如查找表、用户凭据表等)。

    如果你只控制客户端,考虑一下你不妨监控一下服务器的健康状况(我用的是开源的监控平台Zabbix,也有很多商业的基于web的监控方案)。在最终用户代码之外运行服务器可能比从最终用户加载的页面进行额外的 GET 调用更好。

    【讨论】:

      猜你喜欢
      • 2011-11-24
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 2015-12-02
      • 1970-01-01
      • 2013-08-10
      相关资源
      最近更新 更多