消息设计的疑问
发布于 7 年前 作者 evilcige 3521 次浏览 来自 问答

像知乎上的,如果用户关注一个问题,每当问题有人回答时,会给用户一个消息提醒。

有两个疑问啊: (1)用户需要有一个自己的消息表来存储所有通知自己的消息吗? (2)如果有的话,每次当关注的问题有回答的时候,是怎么向所有的关注用户去更新他们的消息表啊(上万人关注)?

8 回复

业务量小的答一个

  1. 直接更新

1、需要有一个表存推给自己的消息 2、可以采取拉的方式,用户登录后拉取和自己有关的消息

@magicdawn 多谢多谢,同时也好奇业务量大时该怎么办

@eggggger 那如果是实时提醒,不能选择拉了吧

  • 这类应用一定是push的,让用户去pull就失去功能的意义了
  • 其实live feed,通常做成以Redis作为数据存储的服务,然后在上面做一层API,做成Observerable或者pub/sub这样的机制,消息传递一般会用到队列系统如RabbitMQ
  • 这个自系统形成并运行,其他的业务就可以notify这个服务,把消息分发出去
  • 用Redis集群来伸缩
  • 业务上会做一些优化,所以不会总是实时的,多少会有延时,根据内容的价值确定消息处理的优先级

client端也要有,接受的,web端现在是不是用websocket js写setInterval 这种是不是也可以拉取;

app上是socket接受的吗? @flamingtop

@flamingtop 你写了node的框架吗;是用的class 这种 害是大多是es5语法;发下git地址瞧瞧哈;

回到顶部