我有一個應用程序...擴大規模紅寶石,ActiveRecord的,MySQL的應用
的應用程序做一個金融產品市場的比較 - 對於一個給定的報價請求時,它與其他幾個網站爲他們的報價。然後它給用戶結果 - 幾個引用的細節。
爲了管理這些請求他們得到保存到MySQL,然後我的應用程序踢,拿起待定報價和農場這些出線程(所有相同的Linux盒)來處理每個站點查找。
我使用JRuby因爲我有線程/ DB相關問題。使用Java線程池來控制線程數。使用當前的硬件/ VPS - 它可以處理大約200個線程。許多限制似乎與每個線程都抓住他們自己的MySQL連接有關 - 抓住報價細節並挽回結果。我們想要處理更多的併發線程,並尋找擴展方法。
想知道哪個方向走......
- 更大的硬件...
- 更多的計算機,並使用某種排隊 機制(具有優先級)的跨機器共享負載 - 所以螺紋別碰分貝,通過 所有的細節/響應去排隊 - 這樣的DB命中是少了,但那麼也許我只是推 問題到隊列中。使用類似 MongoDB的隊列的思考,但開放的建議 - 這是很容易 使用用Ruby :)
- 某種類型的遠程/ RPC機制,如DRB - 理論上這似乎是一個不錯的選擇,但不用它做任何事情 但還不知道它會使事情變得複雜。
- 東西 別的......?
從這個鏈接Reasons for NOT scaling-up vs. -out? - 這似乎是這個問題適合運行更多的機器來解決它。
因此,任何想法上的路要走......
乾杯, 克里斯
謝謝 - 已經做了一些數據庫調整,增加了一些索引,改變了一些範圍來選擇特定的領域。緩存聽起來很有趣 - 因爲請求信息的大部分在一張桌子上,但隨後需要7個線程 - 目前它重新查詢數據庫... –
這就是緩存的用途。保存一次,其他六位可以使用緩存的數據,需要零訪問權限。 – tadman