场景题
演员突然爆火,用户关注瞬间增加
流量聚合-BufferTrigger
类似于kafka的客户端缓冲区,就是个缓冲区,把多次的请求整合成一个请求处理。
针对大V,几千万粉丝的,如何分库分表
单独的库表,搞一张表,保存对应的关系(在哪个库里)
针对某个帖子,进行计数统计的数据库设计
比如,一个帖子的readCount, replyCount, 点赞数等
● 帖子id,用户id,各种count一行
如果要增加新的统计维度,那就增加一列。数据量特别大的时候,可以根据userId进行分库分表
● id,postId, type(read, reply, 点赞), value (数量)
模糊计数和精准计数
DB+cache或者Cache+DB的方式,定期进行数据对齐(这时候如果数据量很大很大,这数据对齐的成本也就太高了,不如直接用消息队列)
热点大key
可以拆分成多个key,hash或者取模方式。
旧的数据重新构建的问题(?)
基于用户维度,再去存储数据,hash结构,ttl时间,点赞过的帖子id?用来区分冷热数据。相当于此时redis中存储的该用户的点赞信息,都是ttl 时间之前,且大于最小的帖子id的帖子集合。如果在这里判断帖子的id是否大于redis中最小的帖子id,判断出是不是热数据,决定要不要去数据库中查询数据。
帖子的分库分表怎么分
冷门帖子突然又爆火怎么处理
可以直接新开个list
还可以查询预热,查询第一页的时候,异步把第二页数据查出来。
大V发了个帖子,怎么推送到关注他的人
如果此时有千万粉丝。采用pull和push模式。大V采用pull(拉)模式,普通用户采用push(推)模式。
活跃粉丝用push模式,直接写库的那种。非活跃粉丝,直接是等粉丝自己主动查询。
feed流架构设计
实现附近的人,带筛选功能
边界处?
评论系统的设计
如果某一条评论下,有几十万的评论。评论该如何分库分表(用MongoDB)。评论楼层?
但是MongoDB对并发支持不是太好。所以还是基于mysql+缓存实现。TIDB+ES
好友点赞,加个字段???
评论总数怎么计数?还有子评论的总数?
回表的概念都不知道,还回表回表回表的!!!!
根评论根据点赞数排序,子评论根据时间排序。怎么设计?
用布隆过滤器,如果存在的,可能会是误差数据引起的,还要再查数据库么
index是⼀个zset,为了保证数据完整性,必须要判定key存在才能增量追加。由于存在性判定和增量追
加不是原⼦化的,判定存在后、增量追加前可能出现缓存过期,因此选⽤redis的EXPIRE命令来执⾏存
在性判定,避免此类极端情况导致的数据缺失。
- binlog投递到消息队列,分⽚key选择的是评论区,保证单个评论区和单个评论的更新操作是串⾏的,消费者顺序执⾏,保证对同⼀个member的zadd和zrem操作不会顺序错乱。
- 数据库更新后,程序主动写缓存和binlog刷缓存,都采⽤删除缓存⽽⾮直接更新的⽅式,避免并发写操作时,特别是诸如binlog延迟、⽹络抖动等异常场景下的数据错乱。那⼤量写操作后读操作缓存命中率低的问题如何解决呢?这⾥就需要解决缓存击穿了
AC自动机
敏感词处理
Java的本地缓存
最优选Caffeine。
热点探测服务
京东hotkey:
只能打成jar包上传到项目中
需要ETCD集群,作为控制中心
如果是热点key,直接做处理。
叼茂SEO.bfbikes.com
看的我热血沸腾啊https://www.237fa.com/
看的我热血沸腾啊www.jiwenlaw.com
兄弟写的非常好 https://www.cscnn.com/
风暴传奇私服独步江湖?游戏中的绝世装备如何获取?:https://501h.com/heji/14796.html
《爸爸,我们去哪儿?第二季》日韩综艺高清在线免费观看:https://www.jgz518.com/xingkong/147219.html
《鹅毛笔》国产动漫高清在线免费观看:https://www.jgz518.com/xingkong/48155.html