【问题标题】:Requesting High Level Advice for RDMS Firebase Sharding With Ridesharing App使用 Ridesharing 应用程序请求 RDMS Firebase 分片的高级建议
【发布时间】: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


【解决方案1】:

为了进行分片,您需要能够识别一个单一的、不可变的值,该值决定某些数据属于哪个分片。如果你没有那个,那么你就不能分片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多