“小红书服务器集群”听起来很专业,其实可以这样理解:
它不是一台超级计算机,而是一个由成千上万台普通计算机(服务器)手拉手组成的“超人团队”。
这个团队协同工作,共同支撑起小红书 app(包括刷笔记、发图文、看视频、直播、购物等)的所有功能。
把它拆解成三个核心点,你就懂了:
1. 为什么需要一个“集群”,而不是一台超级计算机?
扛不住海量用户:小红书月活用户好几亿,同一秒可能有几百万人刷首页、点赞、评论,再强的“单台”计算机也处理不了,必须成百上千台一起上分担压力。
不能“断电”:如果只有一台机器,它宕机了,小红书整个就崩溃了,集群中部分机器坏了,其他机器马上顶上,保证服务不中断(这叫高可用)。
数据存不下:小红书上有几十亿篇笔记、海量的视频和图片,这些数据必须分散存储在集群里成千上万块硬盘上(这叫分布式存储)。
为了高效运转,这套集群不是简单堆砌,而是像金字塔一样严格分层:
接入层:最前面的“门卫”,当你在上海发请求,集群会自动把它交给离你最近的服务器,确保速度最快。
应用层:负责处理业务逻辑,比如你“点赞”,它负责把点赞数+1,并通知给笔记的作者。
缓存层:速度极快的内存服务器,把最热门的笔记、商品信息放在这里,这样当千万人同时刷,不用每次跑到底层数据库去读,速度飞快(这是小红书让App启动和刷新非常快的关键)。
数据层:最庞大的底层,这里又细分了多个“子集群”:
图床集群:专门存海量的图片和视频,小红书自研了分布式图床系统处理每日上亿次的上传和下载。
推荐引擎集群:最核心的“大脑”,它用GPU(显卡)集群运算AI模型,分析你的行为,算出“哪些笔记你认为会感兴趣”。
搜索引擎集群:当你搜索“穿搭”、“旅游”时,背后是一个庞大的文档和索引集群在响应。
数据库集群:存储用户、关系链、评论等结构化的数据。
3. 一个典型的“集群”长什么样?(举个例子)
想象一下,为了服务“小红书的【官方薯】账号”:
场景:发布一篇新笔记,标题“周末去哪儿玩”。
集群动作:
1.负载均衡器(门卫)收到上传请求,分给后端某台“应用服务器”。
2.应用服务器、文字存到“数据库集群”的某个节点(比如节点#403)。
3.图片(一张风景照)被压缩后,存到“图床集群”的节点(比如节点#2056)。
4. 数据库记录下“这篇摘要和它的图片在2056节点上”。
紧接着,更关键的动作:
5、 这个事件被广播给推荐引擎集群,它开始计算:该推给哪些用户?
6、 被推送给“你”时,缓存集群会先检查:你之前看过类似内容吗?结果为空。
7、推荐引擎集群告诉你的手机:“有一篇新笔记,展示它。”
8、 你点开看,图片从图床集群快速加载出来,评论从数据库集群加载,视频则由另一套视频转码分发集群处理。
小红书服务器集群 =一个由数千台甚至超万台服务器组成的、高度分工协作的分布式系统。
它不是一个盒子,而是一个城市级的数字工厂,里面有负责接待的(负载均衡器)、负责设计的(推荐引擎)、负责仓库的(数据库)、负责物流的(CDN——内容分发网络,这个也相当于集群的延伸)。
它的核心价值就是:让你在任何时候,哪怕和几亿人一起刷,都能感觉像在用一台只服务于你的电脑一样流畅。
文章摘自:https://idc.huochengrm.cn/js/25855.html
评论