Tengo una instancia de CouchDB ejecutándose en una máquina y, por lo tanto, con su propio proceso Erlang VM. Si tengo otra aplicación Erlang separada que se ejecute también en esa máquina, ¿es mejor compartir la misma máquina virtual entre CouchDB y mi aplicación, o se recomienda iniciar un nuevo nodo Erlang?¿Deberían las aplicaciones de Erlang separar compartir la misma VM en la misma máquina?
Respuesta
No hay problema con ejecutar varias máquinas virtuales en la misma máquina (al menos las últimas versiones de OTP), sin embargo, es bastante útil si tiene todas sus aplicaciones en un nodo de Erlang. Comunicación más fácil, administración de dependencias, supervisión, tolerancia a fallas: en este caso, se obtiene de forma gratuita, sin mencionar el mantenimiento de un solo 'nodo' en el sistema de control de origen.
El problema comienza con CouchDB. No tiene un sistema de compilación decente que le permita usarlo como una de las aplicaciones independientes de nodo Erlang. Por lo tanto, en este caso necesita tener al menos 2 máquinas virtuales (una actúa como demonio de Couch, la otra aloja su aplicación)
Mientras que muchos recomendarían decoupling estos subsistemas tomaría el enfoque opuesto. Erlang tiene una estrategia integrada para ejecutar muchos applications en el mismo release. Si sus aplicaciones se comunican entre sí directamente, podría tener sentido agruparlas en un lanzamiento. Esto hará que las llamadas entre las aplicaciones sean más rápidas. Algunos argumentarán que todas sus aplicaciones ahora comparten el mismo destino si necesita desmontar el sistema para una actualización que solo una de las aplicaciones necesita. Este es un punto discutible con Erlang en el que está distribuyendo sus aplicaciones a través de muchos nodos. También la mayoría de las actualizaciones se pueden hacer con hot code loading.
Estoy de acuerdo con user425720. El enlace en el comentario de Jonas es completamente erróneo y equivocado. Publiqué mi respuesta allí también. –
- 1. Comunicación entre dos aplicaciones en la misma máquina local
- 2. ¿Cómo compartir la misma variable entre módulos?
- 3. Enchufes en la misma máquina Para Windows y Linux
- 4. ¿Dónde almacenar una cadena de conexión utilizada por muchas aplicaciones en la misma máquina?
- 5. ¿Cómo ejecuto varias versiones de PHPUnit en la misma máquina?
- 6. ¿Varias versiones oficiales de Python en la misma máquina?
- 7. Transferir datos grandes entre aplicaciones .net en la misma computadora
- 8. ¿Cómo puedo desarrollar aplicaciones de producción de iPhone y iPad en la misma máquina?
- 9. TopShelf instalar múltiples del mismo servicio en la misma máquina
- 10. MultiCast Mensajes a varios clientes en la misma máquina
- 11. Cómo separar la base de datos redis para la misma aplicación dos en node.js
- 12. GnuPG/PGP y SSL: ¿Compartir la misma clave privada?
- 13. ¿Deben dos modelos declarativos SQLAlchemy compartir la misma declarative_base()?
- 14. ¿Pueden dos aplicaciones Silverlight compartir IsolatedStorage en una sola máquina?
- 15. VIM - comandos múltiples en la misma línea
- 16. reiniciar automáticamente las aplicaciones Erlang
- 17. ¿Cómo debería estructurar varias instancias de la misma subclase de Ember.Application en la misma página?
- 18. Es la dirección IP en la misma subred que la máquina local (con soporte IPv6)
- 19. ¿Cómo administrar las aplicaciones erlang de terceros?
- 20. Dos formularios comparten la misma entrada
- 21. Procesamiento de la misma página
- 22. ¿Pueden mis componentes COM de 32 bits y 64 bits co-residir en la misma máquina?
- 23. Continuar la salida en la misma línea
- 24. ¿Cuál es la diferencia entre CoCreateInstance() y CoGetClassObject() al crear objetos en la misma máquina?
- 25. Uso de la misma cookie en subdominios selectivos
- 26. Sockets de Java: ¿múltiples subprocesos de cliente en el mismo puerto en la misma máquina?
- 27. ¿Es malo tener sus entornos de prueba y producción en la misma máquina?
- 28. 2 entidades JPA en la misma tabla
- 29. System.Windows.Forms.WebBrowser abre vínculos en la misma ventana o en una nueva ventana con la misma sesión
- 30. Múltiples gráficas en la misma figura [R]
http://stackoverflow.com/questions/2194997/running-multiple-erlang-applications-one -o-many-vms – Jonas
Encuentro que la mayoría de las respuestas en el enlace anterior están equivocadas. Erlang VM puede alojar aplicaciones independientes y administrarlas de manera tolerante a fallas, de hecho puede incluso aumentar la confiabilidad si se siguen los patrones de diseño OTP. – user425720