一、悲观锁并发控制
在各种情况下,都上锁,上锁之后,只有一个线程可以操作这一条数据,当然 不同场景下,上的锁不同 行级锁 表锁 读锁 写锁
二、乐观锁并发控制
当前线程去判断当前数据的版本号,与当前es中数据的版本号 是否相同 如果版本号不同 说明数据已经被 其他人修改过 此时 该线程不会去更新es数据 而是去读取es中最新的数据版本 执行业务计算流程 然后在进行写入
三、悲观锁、乐观锁各自优点
悲观锁优点:方便 直接加锁 对应用程序来书 透明 不需要做额外的操作
悲观锁缺点:并发能力很低,同一时间只有一条线程操作数据
乐观锁优点:并发能力很高 不给数据加锁 大量线程并发操作
乐观锁缺点:麻烦 每次更新时候 都要先对比版本号 然后可能需要重新加载数据 再次修改 再写 这个过程可能要重复几次