首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ruby on Rails 實戰擴展性案例三則:Basecamp、43 Things、抵押引擎

     編輯:Java 相關知識

案例一:37signals Basecamp

  • 每日 40 萬動態請求,無法使用頁面快取(每位使用者資料不同)。
  • 架構:2 台 Web/App 伺服器(雙 Xeon 2.4GHz、2GB RAM),各跑 15 FastCGI + 50-100 Apache 1.3.x,負載 0.5-1.5。
  • MySQL 獨立伺服器,同服務 Ta-da List、Backpack,最大表 50 萬筆,負載僅 0.1-0.3,非瓶頸。
  • 水平擴展:直接增加 App 伺服器即可。

案例二:Robot Co-op 43 Things

  • 部分公開頁面可快取,大量採用 memcached 儲存 Session 與昂貴查詢結果(序列化 ActiveRecord 物件)。
  • 上線三個月,日處理 20 萬動態請求。
  • 2 台 Web/App(雙 3GHz Xeon、2GB RAM),25 FastCGI + Apache 1.3.x,CPU 閒置 80%,負載 <0.3。
  • 關鍵:無 Session 同步問題,任意伺服器可處理任意請求。

案例三:Rapid Reporting 抵押處理引擎

  • 美國 80% 前千大抵押擔保商使用,月處理 200 萬筆交易。
  • 壓力測試:10 台叢集機器,每秒 3000 請求;實際僅需每秒 300 請求。
  • 技術棧:PostgreSQL + lighttpd + FastCGI(每台 ~10 進程),IP 隧道負載均衡 (LVS)。
  • 自動化程序管理:Daemon 監控負載動態增減 FastCGI 進程,無需重啟 Web Server。
  • 合規需求:符合 GLBA 法規,內建授權檢查與稽核追蹤。

共同啟示

  1. Rails 擴展性無虞,關鍵在架構設計(無狀態 App 層、獨立 DB、快取策略)。
  2. FastCGI + 負載均衡器是經典部署模式,現代可對應 Puma/Unicorn + Nginx/HAProxy。
  3. 資料庫通常非瓶頸,應用層水平擴展最彈性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved