php 锁的使用场景,抢购秒杀的场景使用锁个人认为不太合理?
生活随笔
收集整理的這篇文章主要介紹了
php 锁的使用场景,抢购秒杀的场景使用锁个人认为不太合理?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在搶購秒殺的構架設計中,網上很多都說為了防止超賣現象,應該使用鎖機制來做,只有拿到鎖的用戶才能搶購下單;但是我覺得這個不太合理,在高并發下使用鎖,一來造成請求阻塞,二來會造成搶購的不公平現象。
所以我覺得正確的設計應該是
1.搶購商品入隊列,比如:redis隊列,10個商品隊列中就有10個元素。通過pop來取,這樣避免了超賣現象。能取到元素說明搶購成功
2.由于秒殺是高并發的,所以需要異步下單處理,同樣的可以把搶單成功的用戶也加入到隊列中比如:rabbitmq消息隊列,通過消費者來處理訂單數據的生成
不知道還有沒有更好的解決方案?
在搶購秒殺的構架設計中,網上很多都說為了防止超賣現象,應該使用鎖機制來做,只有拿到鎖的用戶才能搶購下單;但是我覺得這個不太合理,在高并發下使用鎖,一來造成請求阻塞,二來會造成搶購的不公平現象。
所以我覺得正確的設計應該是
1.搶購商品入隊列,比如:redis隊列,10個商品隊列中就有10個元素。通過pop來取,這樣避免了超賣現象。能取到元素說明搶購成功
2.由于秒殺是高并發的,所以需要異步下單處理,同樣的可以把搶單成功的用戶也加入到隊列中比如:rabbitmq消息隊列,通過消費者來處理訂單數據的生成
不知道還有沒有更好的解決方案?
總結
以上是生活随笔為你收集整理的php 锁的使用场景,抢购秒杀的场景使用锁个人认为不太合理?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle11g迁移到12cpdb,1
- 下一篇: linux系统qt中make安装,Lin