前言
淘宝数据已经走到了一个转折点,系统的数据量以及用户访问量都在稳步上升,早期的一些设计在现在看来有些捉襟见肘,需要做点什么。
一、 架构中的问题识别(需求分析):我们遇到了什么问题?
1、性能问题
1.1 大表
直播商品表以每月3-4百万条的速度增长,冷热数据区分明显,两个月之前的数据基本不会被读取。
1.2 每日大批量写操作的的系统负载
随着需求的增加,定时任务的运行时间越来越长,可能会影响用户白天的使用。
2、数据准确性
3、人工成本过高
每天的数据校验、修补,每月的榜单等都是开发者亲自执行,不可避免,耗时耗力。
4、运营不便
赠送票券、开通套餐等操作都是通过手动调用来实现,对运营不友好
二、重构方案
1.水平分表
系统绝对并发量没有太高,只是单表的数据量太多,影响了SQL效率,加重了CPU负担,以至于成为瓶颈,可以将items_info、live_stream_data、anchor_data表进行水平拆分。
2.垂直分库
按照业务归属不同,将不同的表拆分到不同的库中,抽象出单独的业务模块,比如榜单模块。
3.半自动数据修复工具
导入json -> 应用数据
4.用户管理后台
创建一个用户管理的后台,一方面增强运营能力,另一方面降低了操作带来的意外风险。