2010-05-15 17 views
5

¿Cómo se recarga la configuración de una aplicación? O bien, ¿cuáles son las buenas estrategias para administrar la configuración de la aplicación dinámica?Erlang: ¿Cómo se recarga una configuración env de la aplicación?

Por ejemplo, digamos que tenía niveles de registro y quería cambiarlos en tiempo de ejecución. Además, supongamos que esta es una de las tantas opciones. ¿Tiene sentido tener un "servidor de configuración" que mantenga el estado de configuración para que otras partes de la aplicación realicen consultas? ¿Las personas hacen eso o simplemente lo inventé?

Respuesta

0

Creo que es razonable mantener todos sus datos de configuración en un repositorio (subversión, mercurial, etc.) y que las aplicaciones lo descarguen cada vez que inicien o intenten recargar sus opciones de configuración. Este es el enfoque centralizado - sin embargo, puede tener muchos servidores de configuración para evitar SPOF - y:

  • le permite mantener un registro de cambios para que sabe quién las puso y cuando (s) que hizo que (ninguno quiere estar a cargo de configuración no apropiada);
  • le permite usar la misma configuración para todas las aplicaciones a través de su red ;
  • facilidad de cambios: puede simplemente modificar la configuración y notificar a las aplicaciones afectadas usando gen_server:abcast llamada u otro medio.

proplists(3) son útiles al leer la configuración.

0

Si mi interpretación es correcta, el problema es el siguiente:

desea crear un sistema distribuido, escalable y por supuesto Erlang es la primera opción que viene a la mente, ya que fue diseñado para tales fines .

  • Usted tendrá varios nodos que vayan a ejecutar aplicaciones locales y aplicaciones distribuidas, así también.

  • Aquí la jerarquía más simple es tener una copia de seguridad en espera activa para cada funcionalidad principal.

  • Esto se puede lograr implementando un controlador de aplicación distribuida.

    • El ejemplo más sencillo es hacer que un servidor se inicie en un nodo, mientras que un servidor esclavo se inicia simultáneamente en un nodo de conexión.

    • Los controladores de aplicaciones distribuidas tienen muchas ventajas.

      • fácil de manejar ejemplo es node_up mensajes de otra forma mediante la introducción de nuevos mensajes que indican que un nodo no es solamente Erlang VM listo, pero todas las aplicaciones vitales se están ejecutando. De esta forma, el nodo compañero puede estar seguro de que el nodo en espera está listo y puede comenzar a sincronizar.

favor relacione o comentario, si no he entendido algo. ¡Buena suerte!

Cuestiones relacionadas