【发布时间】:2012-03-13 01:53:48
【问题描述】:
我希望构建一个由几十台机器组成的分布式视频编码集群。我以前从未使用过消息队列,但我开始使用的两个是 Gearman 和 Beanstalkd。
Beanstalk 似乎比 Gearman 更简单易用,但功能却不如 Gearman。
我不明白的一件事是......你如何在所有服务器上产生新的工作人员?我打算用php。是否像在 CLI 中使用 "&" 运行 worker.php 并让它坐在那里等待工作一样简单?
我注意到 gearman 在工作完成后实际上并没有终止进程,但 Beanstalk 会,所以我必须在每台服务器上的每个工作之后重新启动脚本。
目前我更倾向于使用Beanstalk,我计划的大致流程是:
在每台服务器上每分钟运行一次 cron,检查是否有预定义数量的工作人员正在运行。如果它低于预期,则产生新的工作进程。每个过程大约需要 2-30 分钟。
也许我的逻辑有缺陷?让我知道这样做的“更好”或“正确”方式是什么?
【问题讨论】:
-
请务必查看 Pheanstalk:github.com/pda/pheanstalk
-
请原谅我的天真,但是对于这两个消息传递框架中的任何一个,“服务器”安装在哪里?在将处理卸载进程的远程机器上,还是在通知远程机器新作业的机器上?
-
使用这些服务太贵了。
标签: php video-encoding gearman beanstalkd