制作数千个Facebook电话的最佳语言/堆栈?

时间:2014-09-18 16:42:36

标签: php facebook load-balancing

我正在开发一个需要每天进行数千次Facebook API调用的项目。所有这些数据都需要存储在数据库中,然后基于PHP Laravel的网站就可以使用它。但是,我担心PHP不是解决这个问题的正确语言,因为基本上我想要的是每小时拨打Facebook允许的次数,但是要分散,以便负载良好且平衡。

我听说Ruby与Sidekiq结合使用,但我真的不熟悉这种方法的优点和缺点。这是我要找的吗?还是有另一种方法可以更好地满足我的需求吗?

1 个答案:

答案 0 :(得分:2)

如果你想要“shardability”(意味着你想在多个进程之间平均分配负载),那么PHP实际上可能是错误的语言。但是,我想,这取决于你试图处理的电话数量和复杂程度。

我为

的组合找到了类似任务的解决方案
  • NGINX作为负载均衡器(用于传入的实时更新)
  • NodeJS为“应用服务器”
  • RabbitMQ作为消息队列
  • Redis / MongoDB作为持久性/缓存层

使用NodeJS和MongoDB作为组件的好处是,它们都可以以本机方式处理来自Graph API的JSON结果,这意味着您不必以任何方式转换JSON数据使用/存储它。这是速度的一个好点,并且由于NodeJS事件循环的异步特性,您可能比使用PHP进程处理更多的负载。