2010-05-18 19 views

Respuesta

8

SQL Service Broker es un mecanismo de extensión que le permite poner en cola eventos para el procesamiento asincrónico.

no hay ningún daño intrínseco en la habilitación del intermediario; si no se utiliza, estará inactivo.

Funciona en bases de datos simples y distribuidas. Un caso de uso simple sería una cola de registro. Lo usamos en un cliente para cola de mensajes xml para ser procesados ​​de forma asincrónica. Entonces, enviamos un xml a un InitatorQueue, y luego un servicio los saca de la cola, extrae algunos atributos necesarios a través de xpath e los inserta en una tabla de persistencia en nuestra base de datos.

Here is a good reference

2

Service Broker es un sistema messenging asíncrona. Le permite enviar un mensaje a una cola. Luego, algunos procesos de trabajo recogen el mensaje. No hay garantías sobre el orden o cuándo se recoge un mensaje. Pero SQL Server garantiza que el procesamiento de mensajes se realice de forma transaccional.

El messenging asincrónico es una de las arquitecturas más pesadas que hay. Debe considerar cuidadosamente si el valor agregado vale la complejidad.

+4

en realidad Los mensajes de garantía de Service Broekr se reciben para que se envíen. –

+0

@Mladen Prajdic: Eso es cierto para mensajes en la misma conversación, pero no en general. Por ejemplo, supongamos que envía un mensaje CreateClient al ClientCreator y luego un mensaje CreateAddress al AddressCreator. El segundo puede procesarse antes de que termine el primero. – Andomar

+0

Dado que Service Broker está integrado con el motor de servidor Sql, no necesita usar transacciones distribuidas, lo que la convierte en una de las arquitecturas más livianas (y por lo tanto mejores) que existen. –

Cuestiones relacionadas