gpt4 book ai didi

android - 如何在这种复杂的数据传输场景中最大限度地提高效率

转载 作者:可可西里 更新时间:2023-11-01 09:15:29 25 4
gpt4 key购买 nike

我不确定这个问题是否属于这里,因为它完全基于理论,但我认为与其他问题相比,这个问题最适合这个 stackexchange。

我有 500,000 辆装有 Android 4 计算机的出租车。每天,在一个人或一方旅行后,计算机会将有关旅行的信息发送到 Node.js 服务器。每天大约有 35 次行程,这意味着每天有 500,000 辆出租车 * 35 次行程 = 17,500,000 份报告发送到 Node.js 服务器。此外,每份报告大约有 4000 个字符,大小约为 5KB。

出租车计算机发送到 node.js 服务器的报告只是一个 http post。然后 Node.js 将向出租车发回确认信息。如果出租车在规定的时间内没有收到报告 A 的确认,它将重新发送报告 A。

node.js 服务器只是接收报告。将确认发送回出租车。然后将完整的报告发送给 MongoDB。

一个潜在的问题:出租车 1 将报告 A 发送到 node.js。 Node.js 没有在分配的时间内响应,因此 Taxi 1 将报告 A 重新发送到 node.js。 Node.js 最终处理所有内容并将报告 A 发送两次到 MongoDB。

因此 MongoDB 负责检查它是否收到了多个相同的报告。然后 MongoDB 插入数据。

我实际上有几个问题。这对 NodeJS 来说是不是太多了(我不这么认为,但这可能是个问题)?这对 MongoDB 来说是不是太多了?我觉得检查重复报告可能会严重影响性能。

我怎样才能使整个系统更有效率?我应该更改或添加什么?

最佳答案

第一个潜在问题很容易克服。计算行程的哈希值并将它们存储在 mongo 中。将 key 放在该字段上,然后比较每个下一个文档是否存在相同的哈希值。这种检查重复项的方式将非常容易且非常快。请记住,此文档不应包含发送时间之类的内容。

第二个问题:17,500,000/天是 196/秒,虽然听起来很可怕,但实际上对于体面的服务器来说并没有那么多,而且对于 Mongodb 来说肯定不是问题。

很难说如何提高效率,我非常怀疑您现在应该考虑一下。试一试,做点什么,检查哪些地方效率不高,然后带着具体问题回来。

附言不要在评论中回答所有这些。你必须明白这个问题非常模糊。没有人知道旅行文件是什么意思,它有多大。它可以是 1kb,可以是 10Mb,可以是 100Mb(大于 16 Mb 的 mongodb 限制)。没人知道。当我说 196 个文件/秒不是问题时,我并没有说这个文件数量是最大上限,所以即使是 2、3 倍,听起来仍然可行。

您必须亲自尝试。以 avarage amazon 为例,看看它每秒可以保存多少你的文档(创建接近你的大小和结构的文档)。如果实在不行,试试看能不能行,或者amazon big instance能不能行。

我给了你一个粗略的估计,这是可能的,我不知道你想“包括使用 MongoDB 的管理员,更新,选择,”。你在问题中说过这个吗?

关于android - 如何在这种复杂的数据传输场景中最大限度地提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com