0

我正在实现一个网络服务,它需要每秒大约 70-80 次查询 JSON 文件(大小:~100MB;格式:[{},{},...,{}]) ,并且 JSON 文件将每小时更新一次。“查询 JSON 文件”是指检查文件中是否存在具有特定值属性的 JSON 对象。

目前我想我将在 Node.js 中实现该服务,并将 JSON 文件导入(mongoimport)到 MongoDB 中的一个集合中。当请求进来时,它会查询 MongoDB 集合,而不是直接在文件中读取和查找。在 Node.js 服务器中,应该有另一个计时器服务,它每小时检查 JSON 文件是否已更新,如果已更新,则需要使用新文件中的数据“重新填充”集合。

通过向外部 API 发送请求来检索 JSON 文件。API 有两种方法:methodA 让我下载整个 JSON 文件;methodB 实际上只是一个 HTTP HEAD 调用,它只是告诉文件是否已更新。我无法从 API 获取增量更新的数据。

我的问题是每小时更新。随着服务的运行,请求不断涌入。当计时器检测到 JSON 文件有更新时,它会下载它,下载完成后它会尝试将文件重新导入到集合中,我认为这至少需要几分钟。有没有办法在不中断对集合的查询的情况下做到这一点?

以上是我解决这个问题的第一个想法。这个过程有什么问题吗?直接在文件中查找似乎太昂贵了,尤其是每秒大约有 100 次请求。

4

0 回答 0