分布式系统中保证数据的正确性(插入与更新)

来源:互联网 发布:2017mac国服英雄联盟 编辑:程序博客网 时间:2024/06/15 05:43

1.更新

     如用户A、B都看到数据库中的数据为6,然后A将值修改为3,但是B这时使用的数据还是6,所以就会出现问题。

     这种情况下使用乐观锁。乐观锁一般通过version字段或者修改时间来实现


2.插入

     一般通过数据库表中列的唯一性来保证

alter table 表名       add unique key 唯一键名称 (列名1,列名2,列名3)
       举例

alter table ad_msg_task       add unique key unique_task (rule_id,execute_time,status)
       这样的话在进行插入的时候,如果rule_id,execute_time,status的组合有重复的,则会抛出MySQLIntegrityConstraintViolationException异常,此异常为RuntimeException(用的是Mysql数据库)
      这样的话就可以保证只插入一次

0 0
原创粉丝点击