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和其他经典队列,我关心速度(实时意味着我毫秒范围)和自动错误处理。 –