performance - queue open source
RabbitMQ/ActiveMQ o Redis por más de 250,000 msg/s (1)
A pesar de que el software redis y la cola de mensajes se usan generalmente para diferentes propósitos, me gustaría preguntar las ventajas y desventajas de usar redis para el siguiente caso de uso:
- El grupo de recolectores de eventos escribe los mensajes entrantes como clave / valor. Los consumidores obtienen y eliminan las claves procesadas.
- carga desde 100k msg / sy va más allá de 250k en un corto período de tiempo (como meses) el objetivo es alcanzar millones de msg / s
- La persistencia no es estrictamente requerida. está bien perder mensajes no registrados por diario durante el fallo
- el rendimiento es muy importante (por lo tanto, la cantidad de sistemas necesarios para manejar la carga)
- Los mensajes no tienen que ser procesados en el orden en que llegan.
¿Conoce este tipo de casos de uso en los que se ha elegido redis en lugar del software tradicional de envío de mensajes? ¿O considerarías algo más?
nota: también he visto esto pero no ayudé: novato de aplicaciones en tiempo real - Node.JS + Redis o RabbitMQ -> cliente / servidor, ¿cómo?
Gracias
Teniendo en cuenta tus necesidades, probaría Redis. Se desempeñará mejor que otras soluciones y le dará un control más preciso sobre las características de persistencia. Dependiendo del idioma que esté utilizando, es posible que pueda usar un clúster Redis fragmentado (necesita enlaces Redis que admitan hashing coherente, no todos lo hacen). Esto te permitirá escalar al volumen que indicaste. He visto 10k / sec en mi computadora portátil en algunas pruebas básicas.
Probablemente querrá usar las operaciones de lista en Redis (LPUSH para escrituras, BRPOP para lecturas) si desea semántica de cola.
Tengo un antiguo cliente que implementó Redis en producción como una cola de mensajes en la primavera pasada y están muy contentos con ello.