乐观锁与分布式的理解

乐观锁

认为很少发生并发,只在最后检查一下

怎么检查(当前读加锁,拿到最新数据,进行比对)

根据update语句返回的int比对,与预期数量一致

一条记录更新最直观最简单 判断1即可(比如审核时检查状态,再更新状态,更新条件带上原状态,返回 1 则更新成果,之前遇到并发审核 导致重复操作产生)

多条记录更新时只是 id不同且其它条件一致 比如 状态都是 0 改成 1,先查出要更新的条数,更新时使用 update when case 获取更新条数 进行比对即可

如果更新条件除了 id,还有其它条件不一致,则需要共享一把乐观锁,比如给主单加一个 乐观锁

什么时候把乐观锁标记放到页面?

数据是覆盖更新时

如果是增量更新防止事务层并发就要可以

分布式

多个节点通过网络连接

页面与接口就是分布式的

页面看到的数据不是最新的,接口存储时要进行检查,确保一致性。不一致性要求用户重试,牺牲可用性

相关推荐
huaiixinsi1 小时前
Canal + Outbox、Kafka 选型与高可用、Caffeine 底层原理总结
java·数据库·分布式·mysql·spring·adb·kafka
许长安2 小时前
Kafka 架构讲解:从提交日志到分区副本机制
c++·经验分享·笔记·分布式·架构·kafka
qq_297574672 小时前
第十二篇:RabbitMQ消息积压问题——排查与解决方案(实战优化)
分布式·rabbitmq
qq_297574672 小时前
第十三篇:RabbitMQ限流与熔断——保护系统稳定性
分布式·rabbitmq·ruby
菜鸟小九2 小时前
Kafka()
分布式·kafka
qq_2975746715 小时前
第十四篇:RabbitMQ监控与日志分析——快速排查线上问题
分布式·rabbitmq·ruby
2401_8401922717 小时前
k8s的crd、operator、cr分别是什么?
运维·分布式·kubernetes·prometheus
covco19 小时前
星链引擎矩阵系统:分布式任务调度与万级账号批量作业自动化技术实践
分布式·矩阵·自动化·批量作业
Little Tomato21 小时前
深入浅出高并发:从 JVM 锁竞争到分布式事务的性能博弈
jvm·分布式