CNode

消息设计的疑问

问答
Eevilcige发布于10 年前最后回复10 年前8 回复4227 浏览0 收藏

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

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

查看回复

回复 (8)

M
magicdawn#1·10 年前

业务量小的答一个

  1. 直接更新
E
eggggger#2·10 年前

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

E
evilcige#3·10 年前
引用 magicdawn业务量小的答一个 1. 是 2. 直接更新

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

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

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

app上是socket接受的吗? @flamingtop

S
slclub#8·10 年前

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

参与回复
登录后即可参与回复。登录