Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis Vs RabbitMQ als Datenbroker/Messaging-System zwischen Logstash und Elasticsearch

Nachdem ich sowohl Redis als auch RabbitMQ evaluiert hatte, entschied ich mich aus folgenden Gründen für RabbitMQ als unseren Broker:

  1. RabbitMQ ermöglicht es Ihnen, eine eingebaute Sicherheitsebene zu verwenden, indem Sie SSL-Zertifikate verwenden, um die Daten zu verschlüsseln, die Sie an den Broker senden, und das bedeutet, dass niemand Ihre Daten ausspionieren und Zugriff auf Ihre wichtigen Unternehmensdaten haben wird.
  2. li>
  3. RabbitMQ ist ein sehr stabiles Produkt, das große Mengen an Ereignissen pro Sekunde und viele Verbindungen verarbeiten kann, ohne zum Flaschenhals zu werden.
  4. In unserer Organisation haben wir bereits RabbitMQ verwendet und hatten gute interne Kenntnisse darüber und eine bereits vorbereitete Integration mit chef.

In Bezug auf die Skalierung verfügt RabbitMQ über eine integrierte Cluster-Implementierung, die Sie zusätzlich zu einem Load Balancer verwenden können, um eine redundante Broker-Umgebung zu implementieren.

Ist mein RabbitMQ-Cluster aktiv aktiv oder aktiv passiv?

Nun zum schwächeren Punkt bei der Verwendung von RabbitMQ:

  1. Die meisten Logstash-Lieferanten unterstützen RabbitMQ nicht, aber andererseits hat der beste namens Beaver eine Implementierung, die Daten problemlos an RabbitMQ sendet.
  2. Die Implementierung, die Beaver mit RabbitMQ in seiner aktuellen Version hat, ist etwas langsam in der Leistung (für meine Zwecke) und konnte die Rate von 3000 Ereignissen/Sek. von einem Server nicht bewältigen, und von Zeit zu Zeit stürzte der Dienst ab.
  3. Im Moment arbeite ich an einem Fix, der das Leistungsproblem für RabbitMQ löst und den Beaver-Versender stabiler macht. Die erste Lösung besteht darin, weitere Prozesse hinzuzufügen, die gleichzeitig ausgeführt werden können und dem Versender mehr Leistung verleihen. Die zweite Lösung besteht darin, Beaver so zu ändern, dass Daten asynchron an RabbitMQ gesendet werden, was theoretisch viel schneller sein sollte. Ich hoffe, dass ich die Implementierung beider Lösungen bis Ende dieser Woche abschließen kann.

Sie können das Problem hier verfolgen:https://github.com/josegonzalez/python-beaver/issues/323

Und überprüfen Sie die Pull-Anfrage hier:https://github.com/josegonzalez/python-beaver/pull/324

Wenn Sie weitere Fragen haben, können Sie gerne einen Kommentar hinterlassen.