我构建了一个社交 android 应用程序,用户可以在其中通过 gps 位置查看周围的其他用户。一开始一切顺利,因为我的用户数量很少,但是现在我的用户数量越来越多(每天大约 1500 +100),我发现了我的设计中的一个主要问题。
在我的 Google App Engine servlet 中,我有一个静态 HashMap,它保存了所有用户配置文件对象,当前为 1500,并且随着更多用户注册,这个数字会增加。
为什么我这样做
每个请求他周围用户的用户都会将他的 gps 与其他用户进行比较,并检查他们是否在他的 10 公里半径范围内,平均每 5 分钟发生一次。这就是为什么我每次都无法从 db 获取用户的原因,因为 GAE 读/写操作配额会让我分崩离析。
这个设计的问题是
随着用户数量的增加,Hashmap 每隔 4-6 小时就会变为 null,我认为这个时间会越来越短,但我不确定。每次我检测到它变为空时,我都会通过从数据库重新加载用户来解决这个问题,但这会导致我的用户出现 DOS 30 秒,所以我正在寻找更好的解决方案。
我猜这是因为哈希图的大小,对吗?
我想知道如何管理所有具有最大可用性的用户配置文件。
谢谢。