秒杀系统之资源竞争

lee1473336489 2014-09-28 11:32:50
秒杀系统很大的一个瓶颈就是资源竞争 ,要同时满足以下三点,有好的方案吗 :

实时、高并发、不会少卖超卖。。

...全文
1449 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Nick_ 2015-04-01
  • 打赏
  • 举报
回复
1.业务流程:页面使用静态+js+cdn 或者 动态页面+对象cache+cdn 2.订单队列系统:做必要参数验证,验证并减少库存,告诉调用者成功或者失败,然后直接入订单队列(异步队列) 3.订单系统:根据上一步队列结构,出队列,生成订单数据 4.库存系统:搭一套shared redis 系统, 在商品上架时把库存入到redis中, redis库存结构设计原则是已每个sku作为key分散到不同的redis中 5.支付队列系统:接受银行通知,入队列(可根据不同类别或者商品设计多个队列)(异步队列) 6.支付系统:根据上一步的队列结构,多线程出队列,处理订单状态,记录日志。
hehongbo7632566 2014-10-27
  • 打赏
  • 举报
回复
mark 下
o2_ 2014-10-27
  • 打赏
  • 举报
回复
看不懂啊,太深奥
最勇敢的鸟 2014-10-23
  • 打赏
  • 举报
回复
如果并发数量大,最好用MQ排个队
xtayhicbladwin 2014-10-15
  • 打赏
  • 举报
回复
引用 5 楼 kmtong 的回复:
一些关键字可供参考: 1. 队列(可用multiple producer-single consumer/worker)来保持交易请求的先后顺序。而且单个worker可以让你容易测试worker的性能(如TPS),同时也可以避免多线程的同步问题 2. 事件触发(Event-Driven)编程方式(异步处理)减少等待的消耗:纵看整个交易过程,尽量避免要等待的API调用
唐家文 2014-10-05
  • 打赏
  • 举报
回复
一些关键字可供参考: 1. 队列(可用multiple producer-single consumer/worker)来保持交易请求的先后顺序。而且单个worker可以让你容易测试worker的性能(如TPS),同时也可以避免多线程的同步问题 2. 事件触发(Event-Driven)编程方式(异步处理)减少等待的消耗:纵看整个交易过程,尽量避免要等待的API调用
skgary 2014-10-02
  • 打赏
  • 举报
回复
引用 楼主 lee1473336489 的回复:
秒杀系统很大的一个瓶颈就是资源竞争 ,要同时满足以下三点,有好的方案吗 : 实时、高并发、不会少卖超卖。。
把问题划块,细化。例如,一个服务器只负责一定量组商品的秒杀,作为 中间服务。。。
低丶调 2014-10-01
  • 打赏
  • 举报
回复
好高深啊!!!
最勇敢的鸟 2014-09-30
  • 打赏
  • 举报
回复
还得看是不是分布式系统。不是的话,用原子变量或者volatile变量可以解决不卖少卖超;是的话,可以拿mc试试。
最勇敢的鸟 2014-09-30
  • 打赏
  • 举报
回复
资源得放在内存中

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧