如何实现对数据库模型/资源的订阅?

时间:2018-10-13 18:35:48

标签: database-design architecture notifications social-networking subscription

我正在尝试找到一种实现方式,以使用户能够订阅帖子对象。基本上,这种情况是:如果我有一个对象,并且n个用户选择了要通知该对象的更改,则该情况。在我的站点设置中,我为其他进程运行了JanusGraph,PostgreSQL,Redis,Elastic Search和Cassandra群集。我不知道实现解决方案的方法。

这是我想到的解决方案,

  1. 将obj更改存储在数据库中并计算用户登录的时间。

    数据写入: 更改发布对象后,将更改推送到Cassandra。因此,Cassandra集群保留了更改对象的记录(或在服务成熟且读取量大时迁移到HBase实例)。

    数据读取: 当用户登录时,从Cassandra群集中获取其订阅列表的更新列表。

  2. 在用户登录时计算对象更改。

    我想这种方法的成本很高,因为在获得用户订阅列表后需要额外查找更改和更改摘要。

  3. 预先计算对象更改并存储每个用户的通知。

    我猜想这种方法更昂贵,但仅在我有真正的EXPENSIVE计算时才有用(因为截至目前通知不需要任何ML流程,对可能无法登录的用户使用cpu资源不会有任何收益)

由于这是我第一次尝试解决此问题,因此我对如何解决此问题感到非常困惑。如果有经验的人可以指导我会很有帮助。我不需要代码,但是需要解决方案架构。

PS。问题有资格得到赏金后,将为有力的答案(如果有的话)提供赏金。

0 个答案:

没有答案