Pregunta

Estoy escribiendo una solicitud de investigación distribuida con AKKA utilizando un maestro simple y una topología de trabajadores múltiples, con el objetivo de implementar en un grupo interno de nodos o dentro de una nube corporativa. (Cuando Akka 2.1 está disponible, investigaré el uso del soporte de agrupamiento)

My Pregunta: ¿Cuál es la mejor manera de implementar mi código (en forma de una carpeta que contiene un microkernel AKKA) en cada nodo, arranca, déjalo hacerlo, luego desgarrar y repetir según sea necesario?

  • El directorio de Microkernel y el ejecutable es idéntico para cada nodo trabajador, y solo unos pocos MB. La configuración contiene la IP de un maestro con el que se conectarán.
  • Tengo la intención de comenzar manualmente el maestro.
  • La resiliencia no es una preocupación, ya que esta no es una aplicación crítica de negocios, más bien un privado problema de investigación.
  • No se almacenan datos importantes localmente a los trabajadores.
  • Después de que la solicitud esté completa, es posible que desee redistribuir una aplicación diferente sin desgarrar los nodos (por ejemplo, haber refinado la base de código).

Actualizar: Descubrió que los nodos del cóndomo para admitir trabajos que se ejecutan en el modo integral de máquinas. Esto debería apoyar la ejecución del microquisario como un trabajo, y solo debe asegurarse de que los trabajadores salgan correctamente cuando se realice.

Actualizar 2: Alguien mencionado a Zookeeper podría ser adecuado para esto. Agradecería los aportes de cualquier persona con experiencia.

¿Fue útil?

Solución

Aquí hay algunas ideas. No tengo experiencia con Akka, pero sí sé sobre la computación y el despliegue de la cuadrícula.

  1. Use una herramienta de cuadrícula existente, como http://www.gridgain.com (que tener una versión GPL). También he oído hablar de personas construyendo una cuadrícula con http://www.hazelcast.com/

  2. Use una caja de nubes, como la fauna, http://www.pistonloud.com/press-releses/piston-cloud-launches-free-openstack-distribution/ . Estoy seguro de que debe haber otros.

  3. El aire acondicionado viene con la fundición de la nube, creo, pero usted podría mirarlo directamente: https:// micro.cloudfoundfound.com/ pero no estoy seguro de cómo se escala esa versión.

  4. Roll su propio sistema, instale en una imagen de VM, luego clonlo en sus otros nodos.

  5. Cuando se trata de tuyo, podría hacerlo como el siguiente, lo que es muy similar a algo que ya he desarrollado y funciona bien.

    • Construye su solicitud usando Maven, usando las bibliotecas que le guste.

    • Push Binarios construidos en Sonatype Nexus.

    • construir un lanzador personalizado, que dadas las coordenadas de Maven de un módulo pueden ejecutarlo. My Laucher primero revisa un repo de Maven local para los frascos, si no existen, luego los descarga de Nexus. Luego construye una carrera de todos los frascos en el árbol de dependencia transitivo. Luego crea un nuevo cargador de clases con el nuevo Classpath, y los lanzaron la clase principal a través del cargador de clases.

    • Escriba un servicio, utilizando Java-Service-Wrappe o similar, que al inicio revise qué versión del código se ejecutará leyendo algunas coordenadas de Maven y el nombre de una clase principal de la configuración. La configuración podría ser un archivo en la unidad de red, la URL preconfigurada o incluso el ZOOKEEPER. Luego pasa esto al lanzador que descarga y ejecuta el código.

    • Instale este servicio en muchas máquinas, ya sea manualmente, o mediante clonación de una máquina virtual.

    • ¡Beneficio!

    No menciono específicamente Akka, ya que la mayor parte de su problema parece ser cómo obtener el código que se ejecuta en los nodos Mulitle.

    La ruta personalizada ha funcionado bien para mí, pero luego solo tengo algunos servidores usando esto, y toda mi computadora de cuadrícula adecuada se realiza en la sinapsis de datos. Pero me pregunto si iba a empezar de nuevo si uno de estos PAA de código abierto sería un buen ajuste.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top