说个 tornado 在秒杀之类场景上的使用吧

2016-03-11 21:09:36 +08:00
 sujin190
如果使用 tornado 之类的异步 io 框架,配合外部同步锁服务,似乎可以轻易实现原来面对秒杀之类瞬间高并发需要队列系统才能实现的场景了,外部共享锁服务因为协议简单, 10 万以上并发几乎可以轻松实现,锁空闲是通知需要锁的 tornado 进程,排队,高并发都有了,方便多了啊,各位怎么看?
3623 次点击
所在节点    Python
5 条回复
em3rge
2016-03-11 22:39:44 +08:00
talk is cheap..
sujin190
2016-03-11 23:28:42 +08:00
@em3rge 现在我们支付就已经这么做了,方便很多
xiamx
2016-03-12 06:39:43 +08:00
有没有产生 deadlock 的可能?
sujin190
2016-03-12 10:24:34 +08:00
@xiamx 所以在设计同步锁的时候要有两个参数,一个是等待最大时间紧,另一个是锁保持最大时间,超过等待最大时间则获取锁超时,超过锁保持的最大时间则获取的锁要自动释放,一般来说超过平均处理时间数倍也就没问题了,这样既可以保持同步,又可以在程序异常时不出现死锁
xiamx
2016-03-13 09:49:10 +08:00
@sujin190 超时锁释放后服务端保证 transaction atomicity 这块写起来也挺麻烦的吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/262882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX