写点什么

week5 作业

用户头像
Geek_2e7dd7
关注
发布于: 2021 年 05 月 27 日

评论微博:

DAU 2.5 亿,10%的人评论微博,2500w 条微博评论。假设行为集中在 8~9,12~13,20~22,共 4hour。2500w/4hour 稍高于 1w/s,峰值性能需要满足 1w/s。

业务特点:

用户能立刻看到自己发的评论,其它人可以延迟看到某个用户发的评论。评论发出后不能丢失。

高性能:

多级负载均衡。写入不要加缓存。随机选择一台应用服务器发送请求。

评论先写 redis 再发到消息队列,写入 redis 后返回客户端写成功。通过 consumer 读消息队列写入 db。

高可用:

服务器 1w/1000 至少需要 10 台。服务器无状态,可以动态扩容。

redis 高可用 sentinel 主备*3 至少 6 个 redis 服务进程。至少要 3 台服务器。

db 需要主备高可用。至少要 2 台服务器。

消息队列另需服务器。

看评论:

假设所有人都看评论,高峰时期和发评论重合,每人看 10 条评论,峰值性能需要 100w/s。

高性能:

多级负载均衡,可以使用 cdn 服务大部分请求量。多级缓存可以降低请求量。假设 10%的量需要应用服务器处理。

每台机器处理 1000req/s,共需要 100 台服务器。

高可用:

假设 1 台 redis 能处理 5w/s 的请求,有 3 台左右就足够了。

对于热点事件:

评论服务读可以降级,推迟用户能看到最新评论的时间。可以熔断,保障响应时间上限,同时不对存储造成过大压力。两者能在不影响系统可用性的情况下保证用户可以看到一部分评论。

写服务需要异步处理,比如发消息然后返回,用专用任务写数据库。不能限流,用户不希望写的评论丢失。

用户头像

Geek_2e7dd7

关注

还未添加个人签名 2018.11.08 加入

还未添加个人简介

评论

发布
暂无评论
week5作业