Depois de avaliar o Redis e o RabbitMQ, escolhi o RabbitMQ como nosso corretor pelos seguintes motivos:
- O RabbitMQ permite que você use uma camada interna de segurança usando certificados SSL para criptografar os dados que você está enviando para o corretor e isso significa que ninguém vai farejar seus dados e ter acesso aos seus dados organizacionais vitais.
- RabbitMQ é um produto muito estável que pode lidar com uma grande quantidade de eventos por segundo e muitas conexões sem ser o gargalo.
- Na nossa organização já utilizávamos o RabbitMQ e tínhamos um bom conhecimento interno de utilização e uma integração já preparada com o chef.
Com relação ao escalonamento, o RabbitMQ possui uma implementação de cluster integrada que você pode usar além de um balanceador de carga para implementar um ambiente de broker redundante.
Meu cluster RabbitMQ é ativo ativo ou ativo passivo?
Agora, para o ponto mais fraco de usar RabbitMQ:
- a maioria dos remetentes de Logstash não suporta RabbitMQ, mas por outro lado, o melhor, chamado Beaver, tem uma implementação que enviará dados para RabbitMQ sem problemas.
- A implementação que o Beaver tem com o RabbitMQ em sua versão atual é um pouco lenta no desempenho (para meus propósitos) e não foi capaz de lidar com a taxa de 3000 eventos / s de um servidor e de vez em quando o serviço travava.
- No momento, estou trabalhando em uma correção que resolverá o problema de desempenho do RabbitMQ e tornará o remetente do Beaver mais estável. A primeira solução é adicionar mais processos que podem ser executados simultaneamente e darão mais poder ao remetente. A segunda solução é mudar o Beaver para enviar dados ao RabbitMQ de forma assíncrona, o que teoricamente deveria ser muito mais rápido. Espero terminar de implementar as duas soluções até o final desta semana.
Você pode acompanhar o problema aqui:
https://github.com/josegonzalez/python-beaver/issues/323
E verifique a solicitação de pull aqui:
https://github.com/josegonzalez/python-beaver/pull/324
Se você tiver mais perguntas, fique à vontade para deixar um comentário.