【发布时间】:2020-07-23 16:39:55
【问题描述】:
我有一个使用实时数据库构建的拼车应用。与许多应用程序一样,它跟踪用户位置并将其与其他用户的位置结合使用。扩展研究表明,超过 20 万个连接,我需要计划使用 RDMS 来实现一个名为“分片”的概念。
1) 我想我首先想到的是区域,但您可能和我有同样的想法:对于区域,边界为附近的用户创建了断开连接。
2) 我想到的第二件事是将我们的数据操作迁移到 Firestore。我已经读过 Google 不建议将 Firestore 用于位置应用程序,尽管 Geofire(我们使用它并取得了良好的效果,仅供参考)已经扩展到 Firestore,据说是使用 GeoFirestore。甚至 Firestore 也有一个上限(尽管 1,000,000 允许大多数地方的区域,也许我可以将边界用户的区域加倍)。
目前我正在为诸如大城市中的人们之类的问题而摸不着头脑...到目前为止,我已经搜索了这个问题但无济于事(它对许多其他人来说都很棒,所以坚持下去吧),但我的直觉告诉我,已经为此发明了轮子,所以我正在向你们寻求一些想法,以获得比区域更优雅的解决方案。
编辑:简而言之,我怎样才能让每个人都以自己为半径包围他们半径内的每个人?
感谢任何建议。谢谢你。
【问题讨论】:
-
我很难理解你的问题是什么。
-
简而言之,我怎样才能让每个人都在一个以自己为半径的池中?我不能创建无限的分片,对吧? @DougStevenson
-
为了进行分片,您需要能够识别一个单一的、不可变的值来决定某些数据属于哪个分片。如果你没有那个,那么你就不能分片。
-
谢谢道格。赞成。我会考虑一下的。
-
我想如果他们没有找到匹配的请求,我会退回来。这可能是最简单的解决方案。道格,我一定要给你这个功劳,所以如果你发布答案,我会打勾。否则我会在一天左右的时间内回答。 @DougStevenson
标签: java android firebase firebase-realtime-database geofire