各大微博网站为什么要设置关注人数上限

用过微博和twitter发现都会设置一个2000人数的上限,不知道时基于什么考虑要设置这样一个上限,是怕关注的人太多,信息量太大刷不过来,还是基于系统性能上的限制考虑的呢?

阅读 12.8k
4 个回答

之前在新浪微博工作过。产品上层面的问题我没研究(比如Twitter 早期是否也有类似限制),系统性能肯定是需要考虑的因素之一,我就从这个角度说明一下。

关注关系是用关系型数据库存储的,光从数据的数量级上来讲,如果不设置上限,理论上1亿的用户,最多会产生 1亿 x 1亿 的记录数,而且对活跃用户而言,关注关系没有冷数据,不能根据时间做sharding。(相对而言,一年之前发的微博,就很少会有人去访问。)

最早的时候,feed(用户的timeline)是通过推送的方式聚合的,你每发从一条微博,都会在后台把这个微博推送到你所有粉丝的 feed 队列。于是,苍老师发一条微博,就会让服务器产生大量的计算以及数据读写。这种方式叫做 push (推)。

后来大家认为这样会产生大量不必要的服务器消耗,比如把feed 推给离线用户,是没有太大意义的。然后改,改成用户第一次上线时 pull(拉),随后push(于是不需要push 到离线用户了)。pull 的意思就是,从你关注的所有人中把最新的 500 条 feed 找出来。这种方式下,如果不设置关注人数限制,比如你关注了 10w 人,那你今天早晨起床开微博,肯定会慢得想骂人。

少量营销账号可能会关注太多的用户,造成很大的服务器压力

Twitter的,我认为系统性能上没问题,能把产品做到这么大,不会有什么产品设计是要受到技术限制的,尤其是性能限制。
有一种可能是,早期犹豫技术原因,可能需要限制2000,但是后来技术没问题了,发现这个限制也没什么不好,就保留了。而且关注超过某个数量以后,产品体验可能会骤然下降。

我认为新浪的2000个限制原因很简单,因为Twitter限制。
而且,突破限制可以收费

一个是为了收费,可以突破上限。
再一个肯能是防止注册小号,然后刷关注。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进