Python Django 集成Redis Sentinel(哨兵)集羣開發秒殺系統

我們知道秒殺系統最大特點是瞬時高併發、高訪問量的系統。我們還要保證它的高可用性。
這裏我們採用Python Django 集成Redis Sentinel(哨兵)集羣開發秒殺系統。

Redis Sentinel(哨兵)集羣
Redis哨兵爲Redis集羣提供了高可用性。實際上這意味着我們可以使用哨兵模式創建一個可以不用人爲干預而應對各種故障的Redis集羣部署。可大大提高系統的高可用性。

哨兵模式還提供了其他的附加功能,如監控,通知,爲客戶端提供配置。

下面是在宏觀層面上哨兵模式的功能列表:

  • 監控:哨兵不斷的檢查master和slave是否正常的運行。
  • 通知:當監控的某臺Redis實例發生問題時,可以通過API通知系統管理員和其他的應用程序。
  • 自動故障轉移:如果一個master不正常運行了,哨兵可以啓動一個故障轉移進程,將一個slave升級成爲master,其他的slave被重新配置使用新的master,並且應用程序使用Redis服務端通知的新地址。
  • 配置提供者:哨兵作爲Redis客戶端發現的權威來源,客戶端連接到哨兵請求當前可靠的master的地址。如果發生故障,哨兵將報告新地址。

Redis哨兵是一個分佈式系統,採用多個哨兵對一個master不再可用達成一致時執行故障檢測。這會降低錯誤判斷的概率。即使在不是所有的哨兵都工作時哨兵也會工作,使系統健壯的抵抗故障。

我們課程採用三Redis哨兵集成Redis實例(master和slave)集羣來構建秒殺系統的緩存系統。

秒殺系統部署圖:

Python Django 集成Redis Sentinel(哨兵)集羣開發秒殺系統

秒殺系統涉及主要技術有:

  • Pytho Django 開發;
  • Django web 頁面靜態化;
  • Python Redis Sentinel(哨兵)集羣開發;
  • Redis 管道、事務實現對秒殺庫庫的管理;
  • Redis隊列對訪問流量進行分流;
  • Redis Sentinel(哨兵)集羣;
  • Nginx 負載均衡、反向代理等;
  • 高併發的Gunicorn web應用服務;
  • Supervisor管理進程;
  • Django應用部署;
  • 分佈式集羣部署;
  • ......

    對相關技術有興趣的,可訪問我們的課程51CTO學院:升職加薪視頻課程:高併發秒殺系統架構分析設計與開發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章