高并发情况下如何保证数据的一致性


1.业务层面乐观锁CAS,使用版本号解决ABA问题,实际使用中使用时间戳,更新的时候把查出来的时间戳带上,如果更新失败可以自旋,获取最近值和时间戳,直到更新成功。
2.DB层面开启一个事务,然后select一行for update给这一行加上排它锁,再去更新行,然后提交,其他事务就会阻塞在select for update。
3.分布式锁适合竞争不激烈的情况保证一致性,因为性能比较差,按CAP理论来讲应该是保证了CP放弃了A,zk或者redis保证一致性P,只有拿到锁的线程才能执行,保证一致性C


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM