消息设计的疑问
像知乎上的,如果用户关注一个问题,每当问题有人回答时,会给用户一个消息提醒。
有两个疑问啊: (1)用户需要有一个自己的消息表来存储所有通知自己的消息吗? (2)如果有的话,每次当关注的问题有回答的时候,是怎么向所有的关注用户去更新他们的消息表啊(上万人关注)?
8 回复
业务量小的答一个
- 是
- 直接更新
1、需要有一个表存推给自己的消息 2、可以采取拉的方式,用户登录后拉取和自己有关的消息
@magicdawn 多谢多谢,同时也好奇业务量大时该怎么办
@eggggger 那如果是实时提醒,不能选择拉了吧
- 这类应用一定是push的,让用户去pull就失去功能的意义了
- 其实live feed,通常做成以Redis作为数据存储的服务,然后在上面做一层API,做成Observerable或者pub/sub这样的机制,消息传递一般会用到队列系统如RabbitMQ
- 这个自系统形成并运行,其他的业务就可以notify这个服务,把消息分发出去
- 用Redis集群来伸缩
- 业务上会做一些优化,所以不会总是实时的,多少会有延时,根据内容的价值确定消息处理的优先级
client端也要有,接受的,web端现在是不是用websocket js写setInterval 这种是不是也可以拉取;
app上是socket接受的吗? @flamingtop
@slclub 对。
@flamingtop 你写了node的框架吗;是用的class 这种 害是大多是es5语法;发下git地址瞧瞧哈;