Me gustaría crear una especie de configuración distribuida para ejecutar una tonelada de consultas web REST pequeñas/simples en un entorno de producción. Por cada 5-10 consultas relacionadas que se ejecutan desde un nodo, generaré una cantidad muy pequeña de datos derivados, que deberán almacenarse en una base de datos relacional estándar (como PostgreSQL).¿Solución para distribuir MUCHAS tareas de red simples?
¿Qué plataformas están diseñadas para este tipo de problema? La naturaleza, el tamaño de los datos y las cantidades parecen contradecir la mentalidad de Hadoop. También hay más arquitecturas basadas en grid como Condor y Sun Grid Engine, que he visto mencionar. No estoy seguro si estas plataformas tienen alguna recuperación de errores (verificando si un trabajo tiene éxito).
Lo que realmente me gustaría es una cola de tipo FIFO a la que pueda agregar trabajos, con el resultado final de que mi base de datos se actualice.
¿Alguna sugerencia sobre la mejor herramienta para el trabajo?
Suena bastante similar a un programa de monitoreo (propietario) que estoy terminando. Se descarga periódicamente de varias URL a intervalos configurables, analizando y guardando los resultados en una base de datos PostgreSQL. Implementé esto como un único programa C++ que mantiene una cola de prioridad de trabajos de descarga (en realidad, un std :: map porque los trabajos deben retirarse cuando la monitorización está deshabilitada) y usa libcurl para realizar la descarga. No me he ocupado de agrupar los resultados principalmente porque el programa de monitoreo y la base de datos viven en el mismo servidor. Realmente no usé una plataforma, así que +1 :-) –