赞
踩
1、如果业务要绝对的强一致,就别用缓存了。用缓存注定不会有真正的强一致。
2、一致性方案:
(1)为数据设置超时时间。
(2)更新数据库,再删除缓存。
(3)将删除缓存的消息放入MQ延迟队列,再删除一次。
3、是否有必要引入canal:canal作用是订阅binlog后投递至MQ,本质是通过重试来保证数据一致性,在主从库延迟的情况下,仍有可能存在不一致,依然需要延迟队列来兜底删除。
1、订单存储本质是水平分表,没一些人脑补的那么神乎。
2、分表的实现,写个Interceptor拦截,获取真正的表名就行了,获取表名就从本地缓存取,别再访问数据库或redis浪费资源。
3、分表规则根据日期、hash都行。如果商品量大,直接分1024张表,一定够的,别问为啥是1024,可能这样显得专业点吧。
1、强数据必须落库,先做冻结。
2、更新库存操作放MQ,流量大了排队,不用担心把数据库搞挂。
3、扣减时用 update xx set count=count-1 where count >1。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。