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
Respuesta
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.
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
Map Reduce pattern from google? – Spence
http://labs.google.com/papers/mapreduce.html – Spence
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.
- 1. RabbitMQ con WCF y una cola persistente
- 2. Cómo realizar una cola persistente en Android
- 3. Una cola rápida en Java
- 4. Almacenamiento persistente de datos cifrados usando .Net
- 5. cola de .NET rendimiento ElementAt
- 6. Problemas de cola .NET multiproceso
- 7. Tabla binaria/hash binaria persistente en .Net
- 8. ¿Qué quiere la gente en un diccionario .NET persistente?
- 9. Cola de prioridad concurrente en .NET 4.0
- 10. Explicación breve/rápida de .net mvc
- 11. ¿Existe una cola ordenada en .NET?
- 12. Persistente vs no persistente - ¿Qué debería usar?
- 13. Implementación de cola de bloqueo de subprocesos en .NET
- 14. Servicio persistente
- 15. persistente NSOperationQueue
- 16. Subproceso de python persistente
- 17. Memorización persistente en Python
- 18. ¿Cómo creo una cookie persistente contra una no persistente?
- 19. Cola inmutable en Clojure
- 20. La biblioteca de descompresión GZIP más rápida en .NET
- 21. . ORM .Net con la curva de aprendizaje más rápida?
- 22. Comprobación rápida del sufijo de cadena en C# (.NET 4.0)?
- 23. serialización de objetos rápida y compacta en .NET
- 24. Cómo obtener una solicitud de .Net Http rápida
- 25. La forma más rápida de serializar y deserializar objetos .NET
- 26. Cola de prioridad con una función de búsqueda - Implementación más rápida
- 27. ¿Cuál es la cola de IPC/mensajes más rápida de Perl para una sola máquina?
- 28. ¿Por qué no hay una cola genérica sincronizada en .NET?
- 29. Cómo usar la conexión persistente de PDO?
- 30. Propiedad RightBarButtonItem persistente de UINavigationItem
una tabla de base de datos (con mecanismos de bloqueo apropiados)? –
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
"Pero es bastante lento". No debería ser así. ¿qué dices lento? –