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 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 sull'uso e un'integrazione già preparata con lo chef.
Per quanto riguarda il ridimensionamento, RabbitMQ ha un'implementazione del cluster incorporata che è possibile utilizzare in aggiunta a un bilanciatore 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 dei caricatori Logstash non supporta RabbitMQ ma, d'altra parte, il migliore, denominato 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 sulle 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 di RabbitMQ e renderà più stabile lo spedizioniere Beaver. La prima soluzione è aggiungere più processi che possono essere eseguiti contemporaneamente e daranno più potere al mittente. La seconda soluzione è cambiare Beaver per inviare i dati a RabbitMQ in modo asincrono, che in teoria dovrebbe essere molto più veloce. Spero di completare l'implementazione di 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 di pull qui:
https://github.com/josegonzalez/python-beaver/pull/324
Se hai altre domande, non esitare a lasciare un commento.