BeforeConfirmOrderService的问题
来源:19-12 增加轮询购票结果功能
牛顿第八定律
2024-06-15
老师,我们在真正开始购票流程之前,是用户只要下了订单就insert到数据库中,我看这个接口是加了Sentinel限流的,实际处理时也会有令牌等操作限流。
按照老师前端页面上的提示,10w人抢1000张票,立刻被Sentinel失败9w个请求,然后到了Before方法时,又被令牌失败8000个,最终还剩2000个。
当然这可能是一个预估值,如果说拿到令牌的请求并发量确实有几千,但数据库本身比较脆弱,能提供的并发量也就千级别。
而且这个令牌只是某一天某一车次的令牌,如果有多个车次,多天来发放令牌,然后把INIT状态的订单信息insert到数据库,那么数据库此时要insert的请求可能会非常大吧?对数据库的压力也会非常大。
咱们目前这节课把数据库暴露在高并发下有什么隐患吗?谢谢老师解答!
写回答
1回答
-
如果怕insert失败,可以先缓存起来,再批量insert到数据库,比如每10条插入一次,这样可以减轻压力,这一步优先性能,准确性次之,就算中间缓存数据有丢失,大不了就是这几个人订单没了,就是抢不到票,不影响最终的出票
00
相似问题