2
我正在爲Ruby中的實時數據分析任務開發一個算法。由於數據量相當大,瓶頸是CPU。所以爲了達到所需的性能,我必須並行使用更多的內核,可能在不同的機器上。用於分佈式計算的Ruby庫?
我的問題是,是否有一個現有的Ruby庫提供以下功能:
- 集羣的管理,最好的無主,用動態重新配置(加入和離開節點)和容錯性的某種程度的
- 計算工作分配到的(活動)節點,錯誤處理(作業重試等)
- 快速(直接?)溝通,以確保實時功能
我已經看過的東西:
- DRb:過低的手動節點處理,沒有容錯性?
- DCell:成熟?自動羣集管理?
- Resque/Sidekiq:不錯,但速度太慢(輪詢Redis的,睡覺的工人,...)
- 了Riak的Map/Reduce:很高興,但不建議實時查詢
- Spark:複雜的東西,enterprisy ?
最後的手段:也許有沒有Ruby的解決方案,但其他平臺?也許Java(是,JRuby!)或node.js.
你有沒有在AMQP的寶石組合看着EventMachine的寶石? 我已經將它用於讀取核心和線程的lscpu和nproc函數,然後將其寫入/運行/啓動並要求在Eventmachine :: run方法中。這非常成功。 – Dany
關於AMQP和其他經典隊列,我關心速度(實時意味着我毫秒範圍)和自動錯誤處理。 –