我想知道使用 NodeJS 和一些数据库服务器实时存储设备 GPS 位置信息的最佳方法是什么。
示例:
目前有 5,000 台设备连接到服务器,每台设备都在发送有关其 GPS 位置的信息,最大超时时间为 1 秒。
NodeJS 服务器大约每分钟将接收 300,000 个 PUT 请求。
Too much request, I know it.
另一个需要考虑的重要因素是数据库服务器在技术上是另一个服务器或实例。
By the way, I plan to use Amazon AWS or Microsoft Azure as a cloud server provider.
所以我的问题是,实时存储这些信息的最有效方法是什么?
我的选择包括 MySQL、MongoDB、PostgreSQL 等。 他们可以解释为什么最好使用您推荐的选项。 谢谢!
最佳答案
我会说 - MongoDB。
为什么我会这么说 -
MongoDB 提供了许多索引和查询机制来处理地理空间信息。您可以轻松地将位置数据存储为具有以下坐标轴顺序的 GeoJSON 对象:经度、纬度。 MongoDB 最近还支持其他 GeoJSON 类型:MultiPoint、MultiLineString、MultiPolygon、GeometryCollection。
MongoDB 还提供了大量查询运算符,使您可以轻松查询地理空间数据,例如:
$geoWithin
$geoIntersects
$near
一个典型的例子是
{
location: {
type: "Point",
coordinates: [40.7829, 73.9654]
},
name: "Central Park, New York City"
}
您可以在https://docs.mongodb.com/v3.2/tutorial/geospatial-tutorial/查看各种示例。
最后,MongoDB 允许您在地理空间数据上构建 2D 索引。看看你提到的用法。它应该会派上用场。
关于mysql - 使用nodejs和数据库存储GPS纬度和经度的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492874/