sql >> Base de Datos >  >> NoSQL >> Redis

Redis Vs RabbitMQ como intermediario de datos/sistema de mensajería entre Logstash y elasticsearch

Después de evaluar Redis y RabbitMQ, elegí RabbitMQ como nuestro corredor por las siguientes razones:

  1. RabbitMQ le permite utilizar una capa de seguridad integrada mediante el uso de certificados SSL para cifrar los datos que está enviando al corredor, lo que significa que nadie husmeará sus datos ni tendrá acceso a los datos vitales de su organización.
  2. RabbitMQ es un producto muy estable que puede manejar grandes cantidades de eventos por segundo y muchas conexiones sin ser un cuello de botella.
  3. En nuestra organización ya usamos RabbitMQ y teníamos un buen conocimiento interno sobre su uso y una integración ya preparada con chef.

Con respecto al escalado, RabbitMQ tiene una implementación de clúster incorporada que puede usar además de un balanceador de carga para implementar un entorno de intermediario redundante.

¿Mi clúster RabbitMQ es Activo Activo o Activo Pasivo?

Ahora al punto más débil de usar RabbitMQ:

  1. la mayoría de los proveedores 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 ningún problema.
  2. La implementación que Beaver tiene con RabbitMQ en su versión actual es un poco lenta en 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.
  3. En este momento, estoy trabajando en una solución que resolverá el problema de rendimiento de RabbitMQ y hará que 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 tienes más preguntas, no dudes en dejar un comentario.