怎么优化高并发的insert操作

 我来答
就烦条0o
2016-07-10 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
不考虑一致性,或则业务上允许ehcache成功,但是最终落库失败的情况。可以这么搞。
如果业务上需要强一致性(告知用户成功,必须成功),可以考虑如下方案:
用户请求进来-->
拿令牌------>拿到令牌--->对blockingQueue拿等待操作的任务---->并发插入------>唤醒任务等待线程---->归还令牌

|
|

---->没拿到令牌--->将任务放到blockingQueue--->当前线程等待---------->被唤醒-->返回结果

使用这个方案,等待任务需要设置一个超时时间,如果在blockingQueue等待时间过长,则等待线程直接返回。然后对应的等待任务被拿出来执行的时候,直接忽略.

这样的逻辑,可以直接放在持久化层,对外层的业务不影响。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式