這裡首先題主需要明白一個概念,使用者數量多和併發量大並不是一個概念,雖然使用者數量大往往會帶來比較大的併發壓力。
Python 雖然是效能比較低的語言,但是大使用者量系統的效能瓶頸是 IO 而不是語言的執行效能。
Python 的幾個常用 Web 框架,對於滿足一般橫向擴充套件的網際網路應用的需求是沒有問題的。大使用者系統需要從整體架構考慮,比如:
你的 Django 的系統能不能支援叢集的橫向擴充套件?比如是不是用到了記憶體中的全域性狀態,例如記憶體中的 Session 表、快取等等。叢集的 Django 系統多個例項執行在不同的伺服器上,就需要對系統進行改造,將全域性的 Session、快取這些儲存到外部的資料庫或 Redis 種。
後端儲存如果採用 SQL 資料庫,資料庫系統能不能橫向擴充套件?設計的時候有沒有考慮到分庫分表的支援?
對於海量使用者數量的系統,設計時還需要考慮高價值資料和低價值資料分開儲存,冷資料、熱資料分開儲存等等。
這裡首先題主需要明白一個概念,使用者數量多和併發量大並不是一個概念,雖然使用者數量大往往會帶來比較大的併發壓力。
Python 雖然是效能比較低的語言,但是大使用者量系統的效能瓶頸是 IO 而不是語言的執行效能。
Python 的幾個常用 Web 框架,對於滿足一般橫向擴充套件的網際網路應用的需求是沒有問題的。大使用者系統需要從整體架構考慮,比如:
你的 Django 的系統能不能支援叢集的橫向擴充套件?比如是不是用到了記憶體中的全域性狀態,例如記憶體中的 Session 表、快取等等。叢集的 Django 系統多個例項執行在不同的伺服器上,就需要對系統進行改造,將全域性的 Session、快取這些儲存到外部的資料庫或 Redis 種。
後端儲存如果採用 SQL 資料庫,資料庫系統能不能橫向擴充套件?設計的時候有沒有考慮到分庫分表的支援?
對於海量使用者數量的系統,設計時還需要考慮高價值資料和低價值資料分開儲存,冷資料、熱資料分開儲存等等。
綜上所述,Django 是可以開發大使用者量的系統的,對於現在流量為王的網際網路應用來說,當你遇到了使用者數量的瓶頸,那屬於“幸福的煩惱”,相當於問錢怎麼花。當真遇到這種問題,再採用效能高開發成本也高的技術進行重構即可。