2011-06-20 14 views
9

Estoy buscando un sistema de cola en el que múltiples suscriptores diferentes puedan sacar elementos de una cola centralizada. Los mensajes serán muy livianos, pero necesito algo que sea persistente y muy rápido ya que el volumen de mensajes será grande. MSMQ es un poco pesado y estoy buscando algo ligero. Sugerencias?Cola Rápida Persistente de .NET

+0

una tabla de base de datos (con mecanismos de bloqueo apropiados)? –

+0

Actualmente estamos usando una tabla de base de datos. Pero, es bastante lento. Necesito algo con un poco más de rendimiento y, con suerte, funcionalidad ... – Matt

+0

"Pero es bastante lento". No debería ser así. ¿qué dices lento? –

Respuesta

2

Creo que la pregunta aquí es ¿"necesita" persistencia? Si necesita protección contra duplicados, clientes múltiples y persistencia, entonces se verá forzado a seguir un esquema de bloqueo para su administrador de colas, lo que le costará en rendimiento. Persistance en sí te hará daño a menos que coloques el almacenamiento de cola en un recurso compartido de archivos de alta velocidad.

Si puede reorganizar su aplicación para sobrevivir a un colapso (mantener un feed en el servidor, o tener una arquitectura de solicitud/respuesta para mensajes), entonces puede evitar la necesidad de persistencia. Si lo hace, verá que su gestor de colas se ejecuta exclusivamente en memoria y será extremadamente rápido.

+0

Interesante. La aplicación que estamos construyendo es muy intensiva en el uso del procesador. Estaba imaginando un escenario en el que un servidor actúa como el tipo de intermediario para asignar tareas a otros servidores de "procesamiento". En este escenario, solo necesito que la cola en el broker sea resistente. ¿Tiene un punto de referencia o ejemplos con pautas para construir algo como esto? – Matt

+0

Map Reduce pattern from google? – Spence

+0

http://labs.google.com/papers/mapreduce.html – Spence

3

Hay un proyecto realmente bueno en codeproject. Esa es una alternativa ligera a MSMQ. Puede usar el almacenamiento de persistencia de su elección, de manera predeterminada usa Sqlite. Esto es realmente bueno.

Cuestiones relacionadas