Después de evaluar tanto a Redis como a RabbitMQ, elegí a RabbitMQ como nuestro corredor por las siguientes razones:
- RabbitMQ le permite utilizar una capa de seguridad incorporada mediante el uso de certificados SSL para cifrar los datos que está enviando al corredor y eso significa que nadie rastreará sus datos y tendrá acceso a los datos vitales de su organización.
- RabbitMQ es un producto muy estable que puede manejar grandes cantidades de eventos por segundo y muchas conexiones sin ser el cuello de botella.
- En nuestra organización ya usábamos RabbitMQ y teníamos un buen conocimiento interno sobre su uso y una integración ya preparada con el chef.
Con respecto al escalado, RabbitMQ tiene una implementación de clúster incorporada que puede usar además de un equilibrador de carga para implementar un entorno de agente redundante.
¿Mi clúster RabbitMQ es Activo Activo o Activo Pasivo?
Ahora, al punto más débil de usar RabbitMQ:
- la mayoría de los remitentes de Logstash no son compatibles con RabbitMQ pero, por otro lado, el mejor, llamado Beaver, tiene una implementación que enviará datos a RabbitMQ sin problemas.
- La implementación que Beaver tiene con RabbitMQ en su versión actual es un poco lenta en el rendimiento (para mis propósitos) y no pudo manejar la tasa de 3000 eventos / seg de un servidor y de vez en cuando el servicio fallaba.
- Ahora mismo estoy trabajando en una solución que resolverá el problema de rendimiento de RabbitMQ y hará que el cargador Beaver sea más estable. La primera solución es agregar más procesos que puedan ejecutarse simultáneamente y le darán más poder al transportista. La segunda solución es cambiar Beaver para enviar datos a RabbitMQ de forma asíncrona, lo que teóricamente debería ser mucho más rápido. Espero terminar de implementar ambas soluciones a finales de esta semana.
Puede seguir el problema aquí:
https://github.com/josegonzalez/python-beaver/issues/323
Y verifique la solicitud de extracción aquí:
https://github.com/josegonzalez/python-beaver/pull/324
Si tiene más preguntas, no dude en dejar un comentario.
Redis se crea como un almacén de datos de valor clave a pesar de tener algunas capacidades básicas de intermediario de mensajes.
RabbitMQ se crea como un intermediario de mensajes. Tiene muchas capacidades de intermediario de mensajes naturalmente.
fuente
He estado investigando un poco sobre este tema. Si el rendimiento es importante y la persistencia no lo es, RabbitMQ es una elección perfecta. Redis es una tecnología desarrollada con una intención diferente.
A continuación se muestra una lista de ventajas para usar RabbitMQ sobre Redis:
Algunas desventajas de usar RabbitMQ:
fuente
Sorted Sets
que permiten interacciones prioritarias similares a colas. Redis también se puede agrupar / fragmentar para enviar diferentes mensajes a diferentes colas en diferentes servidores incluso. No estoy seguro acerca de SSL directamente para Redis, pero estoy buscando AWS Elasticache y su Redis 3.2.6 permite el cifrado en reposo y en tránsito. Nota: no digo en absoluto que Redis sea mejor para este caso; solo señalar que esas pueden no ser razones para elegir RabbitMQ en lugar de Redis.Me he estado preguntando lo mismo. Las recomendaciones anteriores de la gente de Logstash recomiendan Redis sobre RabbitMQ ( http://logstash.net/docs/1.1.1/tutorials/getting-started-centralized ), sin embargo, esa sección de las notas ya no existe en la documentación actual, aunque hay notas genéricas sobre el uso de un corredor para lidiar con picos aquí https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html .
Si bien también estoy usando RabbitMQ con bastante satisfacción, actualmente estoy explorando un corredor de Redis, ya que es probable que el protocolo AMQP sea excesivo para mi caso de uso de registro.
fuente
Preguntas rápidas para hacer:
En el ámbito de las opiniones, he manejado redis como corredor y lo odiaba. Por supuesto, esa podría haber sido mi inexperiencia con redis (no es un problema con el producto en sí), pero era el eslabón más débil en la tubería y siempre fallaba cuando más lo necesitábamos.
fuente