高并发系统设计 -- 粉丝关注列表如何设计

文章探讨了在海量用户和高并发的社交系统中,如何设计和优化用户关注列表(followers和attention)。初始采用基于DB的存储,随着用户增长,通过水平和垂直拆分解决数据量问题。针对查询效率问题,引入了缓存策略,并特别关注了热点用户的处理,包括数据迁移和实时性挑战。此外,文章还讨论了在用户突然爆火时的数据处理策略。

粉丝关注列表如何设计和落地

业务场景

在这里插入图片描述

上图我们简称relation页。relation页展示用户的关系相关信息,包含两个子页面:

  1. follower页,展示关注该用户的所有用户信息。
  2. attention页,展示该用户关注的所有用户信息

主要操作

用户可以为自己增加,删除attention,即关注某个其他用户或者对其他用户取消关注。可以删除follower,即取消其他某个用户对自己的关注。

业务特点

  1. 海量的用户数据。亿级的用户数量,每个用户千级的帖子数量,平均千级的follower/attention数量。
  2. 高访问量。每秒十万量级的平均页面访问,每秒万量级的帖子发布。
  3. 用户分布的非均匀。部分用户的帖子数量/follower数量,相关页面访问数量会超出其他用户一到几个数量级
  4. 时间分布的非均匀分布,某个用户可能突然在某个时间成为热点用户,其follower可能徒增数个量级

一个典型社交类系统的典型特性归结为三个关键词:大数据量,高访问量,非均匀性

relation存储层设计

最简单的就是基于DB存储,只需要两张表即可。

table_relation表:id主键,关注者id,被关注者id

table_user_info表:id主键,用户信息(头像,名称,注册时间,大v认证,手机号等信息)

所以我们这里只需要查询两张表就可以查询出关注,粉丝和用户信息:

select count(1) from table_relation where 关注者id 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡桃姓胡,蝴蝶也姓胡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值