小编Zic*_*sus的帖子

Firestore - 如何构建订阅源并遵循系统

我在我的测试社交网络应用程序中使用Firebase实时数据库,您可以在其中关注并接收您关注的人员的帖子.传统的社交网络.我将我的数据库构造成这样的东西 -

Users
--USER_ID_1
----name
----email
--USER_ID_2
----name
----email

Posts
--POST_ID_1
----image
----userid
----date
--POST_ID_2
----image
----userid
----date

Timeline
--User_ID_1
----POST_ID_2
------date
----POST_ID_1
------date
Run Code Online (Sandbox Code Playgroud)

我还有另一个节点"内容",它只包含所有用户帖子的ID.因此,如果"A"跟在"B"之后,那么B的所有帖子ID都添加到A的时间轴.如果B发布了一些内容,那么它也会添加到其所有关注者的时间轴中.

现在这是我的实时数据库解决方案,但它显然存在一些可扩展性问题

  • 如果有人拥有10,000个关注者,则新帖子被添加到所有10,000个关注者的时间线中.
  • 如果有人拥有大量帖子,那么每个新粉丝都会在他的时间轴中收到所有这些帖子.

这些都是一些问题.

现在,我正在考虑将整个事情转移到firestore上,因为它声称是"可扩展的".那么我应该如何构建我的数据库,以便在firestore中消除我在实时数据库中遇到的问题.

java android database-design firebase google-cloud-firestore

44
推荐指数
5
解决办法
6627
查看次数

AWS Elastic beanstalk 请求突然开始失败

最近我的 elb 环境决定不响应某些请求。它会定期发生,并在重新启动应用程序服务器时以某种方式得到修复。我的“var/log/healthd/daemon.log”中收到以下警告 -

W, [2018-11-03T05:29:56.816559 #7415]  WARN -- : discarding statistic item after validation error (Invalid timestamp): {:id=>"0", :namespace=>"application", :timestamp=>1541222570, :data=>"{\"duration\":10,\"latency_histogram\":[[59.201,1],[59.522,1],[59.556,1],[59.696,1]],\"http_counters\":{\"status_499\":4,\"request_count\":4}}"}
Run Code Online (Sandbox Code Playgroud)

我对此问题做了一些搜索,发现它与 vpc 有关,但我没有使用。

Nginx 日志报告了 HTTP 499 错误。但我想这是因为客户端因超时而拒绝请求。

Nodejs 日志只有一些未响应的请求,没有与代码或其他任何内容相关的错误。

注意 - 我不知道这是否相关,但失败的请求主要是具有某种数据库查询的请求。

nginx amazon-web-services node.js amazon-elastic-beanstalk

5
推荐指数
0
解决办法
1123
查看次数