- 主题:问一个并发的问题
rt
目前遇到一个问题:
我提供的restful api,有个 uuid 的参数,对应一个 数据库一个 主 id,一般情况,客户端调用这个api的时候,一个uuid,只会一个调用。
但有个客户端不知道为啥,会对同一个uuid 几乎同时 发出 两个 request,会进行修改操作,从而导致错误。
我针对这种情况,应该怎么加锁呢?
谢谢
------------------------------------
谢谢大家的回答,可能我还没有彻底表达清楚:因为uuid是客户端生成的,所以出现这种情况,两个uuid一样的 request同时发送过来,这两个request肯定是源于同一个client。
比如前端还有防抖之类的技术,那么server端有没有类似的技术呢?
--
修改:feed FROM 223.72.108.*
FROM 223.72.108.*
csrf 攻击?
【 在 feed (鳄鱼) 的大作中提到: 】
: rt
: 目前遇到一个问题:
: 我提供的restful api,有个 uuid 的参数,对应一个 数据库一个 主 id,一般情况,客户端调用这个api的时候,一个uuid,只会一个调用。
: ...................
--
FROM 117.24.206.*
我要怎么解决啊?
谢谢啊
【 在 hgoldfish 的大作中提到: 】
: csrf 攻击?
:
--
FROM 223.72.108.*
数据库加个版本号字段, 用乐观锁避免写覆盖, 重复提交直接忽略, 返回报错. 让客户端自己去处理问题
或者请求时加同步锁, 前一个没处理完, 阻塞后一个请求
或者用队列接收请求, 在队列里排重, 异步返回.
【 在 feed 的大作中提到: 】
: rt
: 目前遇到一个问题:
: 我提供的restful api,有个 uuid 的参数,对应一个 数据库一个 主 id,一般情况,客户端调用这个api的时候,一个uuid,只会一个调用。
: ...................
--
FROM 223.72.49.*
你好。谢谢你的这么多回答
但我仅仅是需要uuid相同的时候,进行加锁
如果不同的uuid之间,也要互斥访问的话,会严重影响性能吧?
【 在 Mikov 的大作中提到: 】
: 数据库加个版本号字段, 用乐观锁避免写覆盖, 重复提交直接忽略, 返回报错. 让客户端自己去处理问题
: 或者请求时加同步锁, 前一个没处理完, 阻塞后一个请求
: 或者用队列接收请求, 在队列里排重, 异步返回.
: ...................
--
FROM 223.72.108.*
使用分布式锁
--
FROM 106.39.52.*
数据库本来就是行锁
【 在 feed (鳄鱼) 的大作中提到: 】
: 你好。谢谢你的这么多回答
: 但我仅仅是需要uuid相同的时候,进行加锁
: 如果不同的uuid之间,也要互斥访问的话,会严重影响性能吧?
: ...................
--
FROM 123.58.117.*
如果能做到幂等,优先用幂等的方式解决问题
实在不行了,再考虑加锁
【 在 feed (鳄鱼) 的大作中提到: 】
: rt
: 目前遇到一个问题:
: 我提供的restful api,有个 uuid 的参数,对应一个 数据库一个 主 id,一般情况,客户端调用这个api的时候,一个uuid,只会一个调用。
: ...................
--
FROM 180.167.95.*
乐观锁不会的
【 在 feed (鳄鱼) 的大作中提到: 】
: 你好。谢谢你的这么多回答
: 但我仅仅是需要uuid相同的时候,进行加锁
: 如果不同的uuid之间,也要互斥访问的话,会严重影响性能吧?
: ...................
--
FROM 106.120.46.*
出什么错?
【 在 feed (鳄鱼) 的大作中提到: 】
: rt
: 目前遇到一个问题:
: 我提供的restful api,有个 uuid 的参数,对应一个 数据库一个 主 id,一般情况,客户端调用这个api的时候,一个uuid,只会一个调用。
: ...................
--
FROM 117.136.38.*