每个用户过来之后为他创建一个容器,每个节点创建完容器之后,会在数据库写一条在线记录。当当前用户疯狂在请求时,可能有多个节点收到了创建请求
创建的逻辑是: 先从数据库查询是否有在线记录,有,则忽略,没有则创建并写记录
那么遇到的问题是,A 机器检查到没有记录,然后就插入,在这个过程中可能 B 也检测到没有记录,先创建并且插入了记录,A 插入就会报错,这种问题应该有通用的解法?
1
7911364440 60 天前
分布式锁
|
![]() |
2
xiangyuecn 60 天前
跟分布式不分布式没关系。
你就算是一个节点也会出这个问题。 |
![]() |
3
xiangyuecn 60 天前
你根本就没加锁。开的事务成了摆设。
|
![]() |
4
yianing 60 天前 via Android
数据库 rr + select for update
|
![]() |
5
oneisall8955 60 天前 via Android
try lock
|