当时主要用来存储用户的农场装扮、离线网页,现在大部分节点的负载率还不到 50%。
“王工,你过来看看,”
我把档案推过去。
“咱们能不能把 H5的资源拆分成静态和动态两部分?”
王工凑过来,我指着屏幕解释。
“静态资源比如火炬动画、背景图、按钮图标,这些用户打开页面就会看到的内容,不用每次从主服务器加载,直接放到‘云帆计划’的 CDN节点里,用户在哪,就从最近的节点调资源,加载速度能快 30%,主服务器的压力也能减下来。”
“那动态数据呢?”
他皱着眉。
“用户的传递记录、地区排名这些实时更新的数据,还是要走主服务器,5000万次访问的话,数据库肯定扛不住。”
“动态数据可以做分层缓存。”
我点开数据库架构图。
“把用户刚产生的传递记录,先存在内存缓存里,比如 Redis,热门地区的排名每 5分钟更新一次,不用实时查数据库;非热门地区的排名,用户点击的时候再触发查询,这样能把数据库的请求量降下来。”
我顿了顿,想起之前做农场社交分享时的经验。
“而且咱们可以设置‘访问峰值阈值’,比如某个时间段访问量突然暴涨,就自动触发降级策略——先显示核心的传递功能,地区排名这些非核心功能暂时隐藏,等峰值过去再恢复。”
王工的眼睛慢慢亮了,他抓起笔在草稿纸上画流程图。
“这样一来,主服务器只需要处理动态数据的核心请求,静态资源全靠 CDN扛,‘云帆计划’的节点资源也能盘活,不用新增太多服务器,成本至少能降 20%!”
Rose也凑过来,笑着说:“我刚才跟网益对接,他们说可以提供部分用户画像数据,咱们能根据用户所在地区,提前把对应的广式皮肤资源放到就近的 CDN节点,比如广州用户打开就直接加载木棉花火炬,深圳用户加载簕杜鹃火炬,既快又有本地化特色。”
那天上午,我们开了场临时技术会,把方案拆成三个模块。
王工牵头改造“云帆计划”的 CDN节点,优化静态资源的分发策略;
数据库组负责搭建分层缓存架构,测试不同峰值下的降级策略;
Rose和运营组对接网益,获取用户画像数据,做本地化资源的预加载。
何鹏飞过来听方案时,拍着我的肩膀说:“这个思路好,既解决了高并发问题,又复用了 existing资源,成本可控,进度也能跟上,不愧是首席架构师。”