分布式数据重复提交

分布式环境中(非分布式也一样)在对某个进行数据添加的时候比如:点赞,用户点赞的时候将点赞信息存入到点赞表中,然后就是校验点赞查询是否存在一条记录,考虑到一些外界原因(dubbo 重新发起请求,当然正式环境下是关闭重新请求的,插入成功后没有给客户端返回成功信息等等。。。)导致重复提交点赞信息,这个时候数据库中就会有多条记录,当然就有问题了,查询的时候在sql中增加limit 1保证系统不会有问题,当然这样解决是不合理的,但是这样可以保证系统不会因为数据的问题整个瘫痪 
解决办法: 
1.在数据库中对能确定这条点赞记录的字段建立唯一索引,列如:用户id,记录id,记录类型等等,那么在插入库的时候就不会插入重复的记录了,如果业务要求可以点赞多次的时候这样就不行了,所以不建议用,不利于扩展 
2.插入记录之前,首先查询,校验数据库中是否已经存在记录,这种方法最简单,但是对于分布式环境下,多个线程操作的时候,有可能查询的时候不存在,但是插入的时候库里边已经存在 
3.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值