Pregunta

¿Alguien tiene experiencia con puntos finales WCF asíncronos?

Estoy tratando de entender si al usar las opciones de enlaces de MSMQ podría tener una configuración en la que el cliente sepa en qué cola deben colocarse los mensajes y funcionaría de manera transparente también si el servicio wcf (eventualmente alojado en IIS) está fuera de línea o no responde.

Realmente me gustaría obtener esta configuración porque de esta manera cuando el servidor de aplicaciones vuelve a estar en línea (uno de los muchos servidores de aplicaciones que tendríamos para nuestra aplicación distribuida), procesará todos los mensajes entrantes en la cola y elaborará.

Estoy más pensando en aquellas operaciones que tienen sentido retrasar, como la gestión de mensajes (envío de correos electrónicos), servicios de registro (escribir entradas de registro en la base de datos, registro de eventos o enviar por correo electrónico) y tipos similares de procesos de backend.

Mi otra opción sería usar TIBCO business works y ems pero tratando de entender qué es mejor y si WCF simple funcionaría sincronizado o async simplemente cambiando el enlace de, digamos, netTCP a MSMQ ....

¡Gracias!

¿Fue útil?

Solución

Tienes que diferenciar entre Async y en cola.

Puede hacer la mensajería de Async con, digamos, NettcpBinding usando la invocación de Async de ASYNC, la ejecución de servicios de ASYNC, la mensajería de Oneway y el dúplex o simplemente la mensajería de una vía.

Sin embargo, como usted dice, las colas traen los beneficios adicionales de: resiliencia, nivelación de carga y, dependiendo de la versión de MSMQ, escalabilidad.

Los dos números principales que tiene utilizando las colas son:

  1. Todas las mensajes deben ser de manera que si el cliente necesita tener una forma de saber si el procesamiento fue exitoso, tiene que diseñar eso en su solución
  2. La semántica de falla de cola es muy diferente de las fallas de servicio estándar.Las colas de carta muerta y las colas de mensajes de veneno deben verificarse por mensajes sin procesar, nuevamente, algo que necesita para diseñar en su solución

Otros consejos

Si desea un equivalente de Tibco EMS, la única característica similar compatible con WCF es MSMQ.Si ya tiene la infraestructura de Tibco EMS pero aún desea usar WCF, puede combinar estos dos porque Tibco proporciona enlace EMS para WCF (nunca lo probé, pero lo vi en la página de descarga del cliente).

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