问题描述
- 数据量在百万左右
- 需要保证用户看到最新的数据
- 实时性要求高
- 由于可配置规则的原因, 百万条数据的更新并不是同一规则, 即可能需要每一条或一批数据查到内- 存中单独计算
计算完成后需要调用其他服务进行同步更新
暂时想到的方案
- 提前计算, 例如 00:00 需要更新, 则 23:50 开始定时任务提前计算, 计算好的数据放在 redis 中, 00:00 开始由另一个定时任务告知程序从 redis 中读取最新值. 对 23:50 至 00:00 之间产生的脏数据进行 mark, 00:00 重新计算.
- 00:00 定时任务, 某一节点从 redis 中读取 clean 的最新值并发送到 MQ, 其余所有节点接受消息并写库
球球各位大佬出出方案, 谢谢! Orz!
动态建一个结构一样的临时表,随时计算存入/更新临时表,0点把临时表表名改为正式表名,把原正式表改为历史表名