Dopo aver valutato sia Redis che RabbitMQ, ho scelto RabbitMQ come nostro broker per i seguenti motivi:
- RabbitMQ ti consente di utilizzare un livello di sicurezza integrato utilizzando i certificati SSL per crittografare i dati che stai inviando al broker e significa che nessuno annuserà i tuoi dati e avrà accesso ai tuoi dati organizzativi vitali.
- RabbitMQ è un prodotto molto stabile in grado di gestire grandi quantità di eventi al secondo e molte connessioni senza essere il collo di bottiglia.
- Nella nostra organizzazione abbiamo già utilizzato RabbitMQ e avevamo una buona conoscenza interna dell'utilizzo e un'integrazione già preparata con lo chef.
Per quanto riguarda il ridimensionamento, RabbitMQ ha un'implementazione cluster integrata che puoi utilizzare oltre a un sistema di bilanciamento del carico per implementare un ambiente broker ridondante.
Il mio cluster RabbitMQ è Attivo Attivo o Attivo Passivo?
Ora al punto più debole dell'utilizzo di RabbitMQ:
- la maggior parte degli spedizionieri Logstash non supporta RabbitMQ ma d'altra parte, il migliore, chiamato Beaver, ha un'implementazione che invierà i dati a RabbitMQ senza problemi.
- L'implementazione che Beaver ha con RabbitMQ nella sua versione attuale è un po' lenta in termini di prestazioni (per i miei scopi) e non è stata in grado di gestire la velocità di 3000 eventi/sec da un server e di tanto in tanto il servizio si è bloccato.
- In questo momento sto lavorando a una soluzione che risolverà il problema delle prestazioni per RabbitMQ e renderà più stabile lo spedizioniere di Beaver. La prima soluzione è aggiungere più processi che possono essere eseguiti contemporaneamente e daranno più potenza al mittente. La seconda soluzione è cambiare Beaver per inviare dati a RabbitMQ in modo asincrono che teoricamente dovrebbe essere molto più veloce. Spero di finire di implementare entrambe le soluzioni entro la fine di questa settimana.
Puoi seguire il problema qui:https://github.com/josegonzalez/python-beaver/issues/323
E controlla la richiesta pull qui:https://github.com/josegonzalez/python-beaver/pull/324
Se hai altre domande sentiti libero di lasciare un commento.