Estoy buscando construir un clúster de codificación de video distribuido de unas pocas docenas de máquinas. Nunca he trabajado con una cola de mensajes, pero los 2 con los que empecé a jugar fueron Gearman y Beanstalkd.Codificación de video distribuido - Gearman vs Beanstalkd
Beanstalk parece ser mucho más simple y fácil de usar que Gearman, pero no es tan rica en funciones como.
Una cosa que no entiendo es ... ¿cómo se generan nuevos trabajadores en todos los servidores? Planeo usar php. ¿Es tan simple como ejecutar worker.php en CLI con "&" y simplemente dejarlo sentado esperando trabajo?
Noté que Gearman en realidad no mata el proceso después de que se hace un trabajo, pero Beanstalk lo hace, así que tengo que reiniciar el script después de cada trabajo, en cada servidor.
Actualmente estoy más inclinado a utilizar habichuelas mágicas, el flujo general de las cosas que había planeado era:
Ejecutar un cron minuciosamente en cada servidor que comprueba si hay cantidad de trabajadores predefinido en funcionamiento. Si no se supone que es así, genere nuevos procesos de trabajo. Cada proceso tomará aproximadamente 2-30 minutos.
¿Tal vez tengo un error en mi lógica aquí? Déjame saber cuál sería una forma "mejor" o "adecuada" de hacer esto?
Asegúrese de consultar Pheanstalk: https://github.com/pda/pheanstalk –
Disculpe mi ingenuidad, pero con cualquiera de esos dos marcos de mensajes, ¿dónde se instala el "servidor"? ¿En la máquina remota que manejará el proceso descargado, o la máquina que informa a la máquina remota de un nuevo trabajo? – ariestav
Demasiado caro para usar cualquiera de esos servicios. –