前提:微博有好几亿的注册用户,一些明星、大v粉丝动辄几百万的粉丝,微博的推送的及时性和性能就显得尤为重要。
主要分两种方式:
一.拉 :顾名思义用户自己去拉取自己的关注的用户发送的微博消息
1.某位大v把自己新写得微博发送到一张大表里;
2.关注这位大v的用户遍历自己的关注用id,查询出大v发的消息,得到新信息。
优点:1.数据不多,查询方便
缺点: 大表要存放太多行数据,不能实现
二.推:推送的新微博内容
1.大v发送新的微博,存入数据库;
2.任务中心把新的微博,用redis存储,redis要做集群;
3.会筛选活跃的用户推送;
优点: 1.更加科学,操作更加规范
2.高性能,高可用
缺点: 因为redis做集群,所以系统维护成本高,不宜维护。