1. 程式人生 > 實用技巧 >折扣商品限時秒殺搶購系統

折扣商品限時秒殺搶購系統

  • 秒殺系統基於Spring Boot搭建,針對多人秒殺搶購系統做了良好的優化。
  • 前端使用CDN快取和限制重複秒殺減小對伺服器的壓力。
  • 後端使用Redis 進行快取,減少對資料庫請求的壓力,使用RabbitMQ非同步實現資料庫更新。
  • 經過測試優化,系統的平均響應時間減少67%,吞吐量增加74%。
秒殺流程

|

庫存預減用的是哪個redis方法

  • decr 變數:變數減一。

  • incr 變數:變數加一。

如果專案中的redis服務掛掉,如何減輕資料庫的壓力

  • 叢集+主從。
  • 熔斷器降級,在redis取資料做一次熔斷降級,報錯直接走資料庫。

如何避免訊息佇列的消費方重複消費訊息

  • 資料庫唯一約束實現冪等,欄位使用Message的key做唯一索引。

訊息的消費結果如何返回給訊息傳送方

  • 通道設定成confirm模式,

說一下你的秒殺系統設計,怎麼解決超賣

  • 行鎖,set stock=stock-1 where stock>0
  • 樂觀鎖
  • LUA指令碼把判斷庫存扣減庫存的操作都寫在一起交給Redis去做

你說你用到了redis,redis有哪些資料結構,你為什麼要用redis,哪裡用到了,為什麼說redis快,多路io複用詳細原理可以說說嘛?

redis,深入講一講,並說一下它的應用場景

  • 快取;限時業務,計數器;分散式鎖;佇列(push,pop)。

秒殺模組怎麼設計的,如何壓測,抗壓手段,訊息佇列怎麼用的

  • JMeter,訊息佇列非同步修改庫存。

秒殺系統伺服器抗壓思路,從哪些方面去優化

  • 服務單一職責:秒殺的業務邏輯放一起。

  • 前端:秒殺連結加鹽加密,資源靜態化,按鈕控制。

  • Redis叢集,Nginx負載均衡,庫存預熱。

  • 限流,降級,熔斷,隔離。

  • 訊息佇列:削峰填谷。

秒殺專案,別說你裡面的優化,你還有什麼優化策略嗎?

  • 多伺服器負載均衡,把秒殺商品平均分給伺服器。

秒殺系統的前端設計怎麼做

  • 商品頁面:用於所有秒殺商品的展示。

  • 秒殺頁面:用於秒殺商品的展示和秒殺功能。

說說秒殺如何實現的

  • 使用者請求傳送到訊息佇列中,訊息佇列非同步處理秒殺請求。

秒殺過程中怎麼保證redis快取和資料庫的一致性

  • 先更新資料庫,再更新快取
  • 刪除快取,更新資料庫
  • 更新資料庫,刪除快取

秒殺介面防刷怎麼做

  • 秒殺連結加鹽。
  • URL動態化,通過MD5之類的加密演算法加密隨機的字串去做url,然後通過前端程式碼獲取url後臺校驗才能通過。

Redis和資料庫資料不一致怎麼辦,以什麼為準

  • 以資料庫為準。