內(nèi)容目錄:


工作中經(jīng)常會(huì)遇到爭搶共享資源的場景,比如用戶搶購秒殺商品,如果不對商品庫存進(jìn)行保護(hù),可能會(huì)造成超賣的情況。超賣現(xiàn)象在售賣火車票的場景下更加明顯,兩個(gè)人購買到同一天同一輛列車,相同座位的情況是不允許出現(xiàn)的。交易系統(tǒng)中的退款同樣如此,由于網(wǎng)絡(luò)延遲和重復(fù)提交極端時(shí)間差的情況下,可能會(huì)造成同一個(gè)用戶重復(fù)的退款請求。以上無論是超賣,還是重復(fù)退款,都是沒有對需要保護(hù)的資源或業(yè)務(wù)進(jìn)行完善的保護(hù)而造成的,從設(shè)計(jì)方面一定要避免這種情況的發(fā)生。

本文以退款交易場景入手,引入分布式鎖,嘗試分析分布式鎖需要考慮關(guān)注點(diǎn),包括以下內(nèi)容:

  • 鎖的引入和局限性

  • 分布式鎖的三要素

  • 分布式鎖進(jìn)階

    • 獲取鎖操作的原子性

    • 鎖與保護(hù)共享資源的數(shù)據(jù)一致性

    • 分布式鎖的性能

    • 可重入

    • 公平鎖和非公平鎖

  • 分布式鎖的容錯(cuò),使用分布式鎖時(shí)注意考慮哪些問題

網(wǎng)友評論