我正在开发一个网站,该网站需要进行大量的数据挖掘和机器学习计算,因此计算成本非常高。
我使用Zend框架、Redis和MySQL来构建这个网站,目前一切运行良好,因为流量还不算很大。
然而,我感觉在流量增大时,我将不得不担心PHP在进行大量数据分析和计算时的性能问题。
我想现在就解决这个问题,并考虑使用PHP以外的替代方案来执行所有数据挖掘和机器学习操作。
我考虑设置一个作业服务器,并用C或C++重写一些代码,然后通过Gearman或任何能够进行工作分发的库从PHP中调用这些代码。
大家觉得怎么样?
我想知道是否有更好的选择?
回答:
我不确定这是否适合你的场景,或者你是否已经尝试过,但Zend框架有Zend_Queue,它可以与消息/队列服务器通信或稍后存储以供PHP处理。请参阅Zend Queue Adapters,了解可以与Zend通信的强大作业处理器的参考资料。
你也可以用C/C++编写那些需要大量处理的部分,并直接从Zend框架中执行它们,你只需要想办法等待作业完成,或者定期检查作业是否完成。