作为一个记录
需求来源:
每天有超过1亿条的xx记录需要入库,然后提供查询;更新数据可允许少量丢失
版本一:
使用rocketMq作为消息队列 + memcache + mysql分表分库 作为系统的实现方案。
运行效果:
问题一:由于mysql的分表分库存在较大的局限性(无法单独根据非分库字段作为查询条件)且现在我们的数据库在一个公用的实例中,当系统更新的TPS较大的时候容易引起数据库的异常,影响生产;
问题二: 提供查询的接口需要根据非分表分库的字段查询,目前的mysql不满足
版本二(目前版本):
基本逻辑无变化,数据库从mysql改成cassandra;
好处:单独的cassandra集群,不影响核心服务;没有mysql分表分库那一套,操作比较简单;
目前准实时更新几亿的数据基本无问题。