Pregunta

Sé que esta pregunta se ha hecho un poco antes. Pero mirando a mi alrededor todavía no puedo decidir qué ruta debo seguir. Aquí está mi escenario, espero que puedan ayudar:

Tendremos una serie de servicios web que se verán afectados de forma programada por cientos de aplicaciones móviles. Estos servicios proporcionarán datos en el dispositivo con nueva información que va a los dispositivos y regresa de ellos. Los datos devueltos por los dispositivos deberán actualizar una única base de datos central del servidor SQL que también alimente varias aplicaciones de escritorio y un sitio web.

Para reducir la cantidad de tiempo para la solicitud / respuesta de estos servicios, hemos decidido procesar los datos provenientes de los dispositivos después del hecho, ya sea pegándolos en una instancia de MSMQ o almacenando los objetos serializados en datos temporales. almacenar y tener un servicio de Windows procesarlos más tarde.

Así que estas son mis opciones, pero aparte de esto, aquí hay algunas cosas más que podrían ayudarlos a aconsejarme:

  • Los datos devueltos desde los dispositivos no se devolverán en paquetes de mensajes más pequeños que deben solicitarse del lado del servidor.
  • No sé nada sobre MSMQ pero he escrito servicios de Windows anteriormente. Aunque no tengo problemas para recoger MSMQ si es necesario.
  • Quiero mantener la respuesta de los dispositivos en algún lugar en caso de que el procesamiento falle por algún motivo causado por los datos. De esta manera, puedo interrogar los datos y ver si hay un problema, es decir, el dispositivo permite que un usuario agregue comentarios que extiendan la longitud del campo relacionado en la base de datos del lado del servidor.

Con esta información, ¿cree que vale la pena que investigue MSMQ o debería seguir con la solución más simple?

Chris.

¿Fue útil?

Solución

MSMQ no es una mala elección y definitivamente no es difícil de aprender, pero tenga en cuenta que hay algunas limitaciones que debe tener en cuenta.

Cons:

  • Cada cola solo puede tener 2 GB.
  • Cada mensaje de 4 MB (aunque el límite de 4 MB se puede arreglar usando MSMQ con WCF).
  • Solo para Windows, por lo que está limitado a usarlo con .NET, C / C ++ o biblioteca COM para entornos habilitados para COM.

Pros:

  • Soporta Windows Network Load Balancer.
  • Admite Microsoft Cluster Service.
  • Integrado con Active Directory.
  • Se envía con Windows.
  • Admite transacciones.
  • Los mensajes MSMQ pueden rastrearse mediante mensajes de auditoría en el registro de eventos de Windows.
  • Los mensajes se pueden autenticar (firmar) o cifrar automáticamente al enviarlos, y verificarlos y descifrarlos al recibirlos.

Otro enfoque que quizás desee considerar es escribir sus datos en una tabla de etapas. Esta podría ser una buena idea ya que desea tener un mensaje de nuevo registro.

Es difícil dar consejos cuando no conozco el resto de la arquitectura del sistema, pero espero que esta respuesta ayude un poco.

Enlaces útiles

Programación de MSMQ en .NET - Parte 1
Uso de MSMQ con WCF

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