是一个面试题,仔细思考,很有意思。
每天一亿,那每小时就是500万,每分钟就是9万条数据,每秒就是1500条数据
kafka接入数据,然后灌入到mysql数据库,多线程扫表然后利用消息中间件通知出去
关键点在多线程扫表的设计。
分库,一个历史库,一个运行时库
当灌入到mysql数据库的时候,产生一个全局的id序号,根据这个序号做hash运算,分布到不同的表中t1,t2,t3,t4,....t16个表,
每个表一个线程扫描,当开始扫表命中,把数据迁移到历史库的历史表中。
平均下来一个线程每秒100条数据。