Hay muchas partes en una aplicación distribuida eficiente. No tomaré la ruta fácil y te diré que aprendas Go u Rust, ya que no tengo la intención de comenzar un idioma. Me atendré a Python para asesorarte.
- Cola de tareas : así es como almacenará las tareas para hacer. La estructura de datos de la cola es FIFO (Primero en entrar, primero en salir), por lo que será perfecto para realizar un seguimiento de las tareas que debe realizar en la red distribuida. Un buen lugar para comenzar es el apio [1]. El apio mismo se distribuye, lo que debería jugar en su arquitectura de sistemas distribuidos.
- Thread Spawner : en cada máquina, querrá que se ejecuten varias cosas al mismo tiempo (paralelización). Para esto, puede usar la biblioteca de multiprocesamiento de Python [2]. Es muy bueno en lo que hace.
- Balanceador de carga : este componente es crucial. Toma tareas de la cola de tareas y las asigna a una máquina (que luego generará engendro). Lo hace para equilibrar la carga de trabajo. (Esto a menudo se integra con las colas de tareas).
- Conocimiento de cómo hacer que Python funcione : hay muchas técnicas que aceleran Python en una cantidad tremenda, como Generadores e Iteradores. Aprende estos. Para este tema, sugeriría leer Python de alto rendimiento.
Notas al pie
[1] Apio: Cola de tareas distribuidas
[2] 16.6. multiprocesamiento – Interfaz de “subprocesos” basada en procesos – Documentación de Python 2.7.14rc1
- Tuve una primera experiencia de Ayahuasca beneficiosa pero muy difícil, ¿cómo puedo estar mejor preparado para la próxima?
- Cuando trato de hablar inglés, las palabras no salen bien. ¿Cómo puedo hablar inglés fluido?
- Todavía tengo un esguince de tobillo después de 3 semanas; ¿empeora cuando camino demasiado?
- No lo he visto o interactuado con él en 8 años, pero ahora estoy más obsesionado con él que cuando estaba con él, ¿por qué es eso?
- Escribí una pregunta y Quora Content Review dice que puede necesitar edición. ¿Hay alguna manera de averiguar por qué? ¿Significa esto que nadie ve mi pregunta ahora?