java 订单和账户系统如何设计?

wdragon1983 发布于 2014/12/07 11:05
阅读 2K+
收藏 0
在一个高并发的系统,如何设计订单和账户支付系统满足高并发时候系统正常运行。比如淘宝的 的订单和账户系统。
我的理解是这样的:
对前端过来的订单请求 放到订单队列里面,订单系统每次只去处理固定的一部分订单请求,其他的都放在队列里面等待。但这样有个问题,一些商品是有个数的,比如火车票或者一些打折 商品,如果前端不处理,直接扔到订单队列,可能大部分订单请求,最终都会返回无商品。一些秒杀系统在发送到订单系统之前,通过缓存先判断商品数目,没有就 直接返回。 但是对于普通商品,比如淘宝的双11的时候,有那么多商品,难道都会提前加载到内存里面吗?或者如果前端点击购买商品的时候先去数据库查询一下商品数目, 然后更新数据库把商品数-1.然后提交给订单系统。但是这样,如果同时请求订单量过大,类似于火车票系统,这个处理会不会把系统搞崩溃,有什么好的解决方 案吗?不知道淘宝是如何处理的?
还有账户系统,用户付费,要对用户和商家的账户余额进行更新。特别是商家的账户,在同一时刻可能有很多并发的请求,这个时候应该如何处理?乐观锁可能会导 致账户余额更新不成功,但是用户已经付费了。或者是直接用悲观锁,保证余额正确处理。而且如果是分布式系统,还没办法对java方法用同步。请问账户系统 对商家余额更新处理有什么好的方案?
加载中
返回顶部
顶部