个人知乎 ##功能九-timeline/新鲜事推送

个人知乎

功能九-timeline/新鲜事推送

基础知识

不同用户不同的内容
推:
    事件触发后广播给所有粉丝,异步实现简单
    粉丝量大时,后台压力大
拉:
    登录时主动拉取关注内容
    读取压力大
推拉:
    活跃/在线用户推
    其他/僵尸拉
大型网站技术架构
    按时间分表
    异步处理
    分库分表,比如按尾号
    分级缓存,热门数据存在内存
    多机房数据同步
人人网
    推送为主,新鲜事合并
    内存缓存关系链
    数据压缩缓存
    异步线程池

业务分析

模型:feed新鲜事
拉模式:读取数据库
推模式:

Model

feed:id,type,userId,createdDate
    data:json格式

数据表

根据模型建表

DAO

注解实现简单sql
    插入
xml实现动态sql
    查询和userId相关的新鲜事

Service

查询list<userId>对应的新鲜事

Controller

拉模式
    feedHandler
        当如评论,关注等Event事件发生时,生成一个feed并入数据库
    getPullFeeds:拉模式
        根据登录用户取出关注的人,得到id列表list<userId>
        调用Service从数据库得到所有的新鲜事
        用macro宏在模板根据type中渲染出不同样式
推模式
    feedHandler
        当把feed存入库时,还需要推入到粉丝的reids.<timelinekey,list>中
        用户登录时根据自己的timelinekey直接从redis取出所有feed
        注意当取消关注或者取消事件是需要同步redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值