2012-04-17 9 views
5

Estoy tratando de averiguar cuál es la mejor solución para trabajar con el cluster rabbitmq a través de wcf.trabajando con par de servidores RabbitMQ de alta disponibilidad a través de WCF

configuración actual: servidores web

  1. 2 IIS (actúan como mensaje produce y enviar mensajes a través de cola amqp WCF cliente).
  2. 2 servidores con rabbitmq broker (agrupado con cola duplicada, rabbit1 y rabbit2)
  3. Servicio de Windows (trabajador) con servicio wqf de amqp alojado que escucha los mensajes entrantes.

El rol web envía mensajes al nodo rabbit1 y el trabajador también escucha al nodo rabbit1. Si el nodo rabbit1 falla, el sistema (tanto web como worker) debería cambiar a rabbit2. Y esa es la pregunta, cómo implementar esto de una manera más elegante en lugar de manejar fallas de conexión en el código de la aplicación.

El primero y el único enfoque que veo ahora es usar la característica de extremos de respaldo de enrutamiento wcf4. De esta forma, se resuelve el problema del lado del cliente (función web) solamente, pero no se resuelve el problema en el lado del servicio wcf (función del trabajador).

Respuesta

3

Una forma es crear un contenedor alrededor de su host de servicio, que se utiliza para almacenar una lista de cadenas de conexión (que pueden provenir de config).

Agregue un controlador al evento con error de servicio, donde puede cerrar y volver a abrir el host con una cadena de conexión diferente.

Cuestiones relacionadas