RabbitMQ: Introdução
Introdução ao Stackhero para RabbitMQ
👋 Bem-vindo à documentação da Stackhero!
A Stackhero oferece uma solução RabbitMQ cloud pronta para uso que proporciona uma série de benefícios, incluindo:
- Acesso completo à interface web do RabbitMQ para gerir utilizadores, vhosts e permissões.
- Filas ilimitadas sem limitações de tempo de retenção.
- Suporte para os protocolos AMQP, MQTT, STOMP e WebSocket.
- Muitos plugins incluídos, como
Delayed Message Exchange,Message DeduplicationeConsistent-hash Exchange.- Atualizações fáceis com apenas um clique.
- Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.
Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de hospedagem cloud RabbitMQ da Stackhero!
O que é RabbitMQ?
RabbitMQ é um servidor de message broker robusto projetado para simplificar a troca de mensagens entre vários serviços, seja de forma assíncrona ou síncrona. Ao permitir que as aplicações deleguem ações demoradas ou paralelizem tarefas, o RabbitMQ pode melhorar significativamente o desempenho das aplicações, simplificar a escalabilidade e aumentar a fiabilidade geral.
RabbitMQ facilita a implementação eficaz de uma arquitetura de microserviços, abordando os desafios comuns associados a essas configurações. O seu vasto ecossistema inclui uma riqueza de plugins que podem expandir as suas capacidades.
Além disso, o RabbitMQ suporta várias bibliotecas de clientes, permitindo conexões a partir de praticamente qualquer linguagem de programação, incluindo Java, Spring, .NET, Ruby, Python, PHP, Node.js, Go, Rust, e mais.
Exemplos de uso do RabbitMQ
Imagine uma aplicação que permite aos utilizadores descarregar todas as faturas do ano passado com uma única ação. Esta tarefa envolve a geração de múltiplas faturas em PDF simultaneamente, o que pode ser bastante demorado. Com o RabbitMQ, uma aplicação pode enviar 12 mensagens com detalhes das faturas para um topic. Um sistema dedicado à geração de faturas responderá a estas mensagens, produzirá os ficheiros PDF e os devolverá ao RabbitMQ. Posteriormente, a aplicação recupera os PDFs e entrega-os ao cliente.
O verdadeiro poder deste sistema reside na sua capacidade de executar múltiplos scripts em simultâneo para gerar faturas. Com o mesmo código, pode processar estas 12 faturas em paralelo! Imagine 100 utilizadores a solicitar cada um as suas 12 últimas faturas ao mesmo tempo. Não se preocupe, o sistema está agora equipado para escalar e gerir inúmeros ficheiros PDF simultaneamente!
Agora, suponha que deseja enviar estas faturas por e-mail. Pode criar um script que aceite um endereço de e-mail e um ficheiro PDF como entradas, e depois envie o PDF para o e-mail especificado. Conecte este script de envio de e-mails ao RabbitMQ e configure o seu gerador de faturas para encaminhar os ficheiros PDF para o topic "emails". É tão simples quanto isso. A aplicação pode agora gerar e enviar dezenas de faturas de forma eficiente por e-mail.
A fiabilidade é outra vantagem chave. Se um script de e-mail falhar inesperadamente ao enviar uma fatura, o RabbitMQ garante que a fatura não se perde. Outro script de e-mail pode retomar a tarefa e completá-la sem problemas, mantendo a satisfação do utilizador. O RabbitMQ reforça tanto a fiabilidade quanto a consistência.
Existem inúmeros casos de uso. Se tiver múltiplos sistemas ou aplicações que requerem comunicação fiável, ou se precisar delegar tarefas demoradas a outros sistemas, o RabbitMQ pode ser a solução que necessita.
Exemplo de uso do RabbitMQ em aplicações de partilha de viagens ou entrega de comida
Em aplicações como Uber ou Lyft, quando um utilizador solicita uma viagem, várias informações são apresentadas:
- O preço da viagem
- A duração da viagem
- O tempo estimado de recolha
- O percurso
Estes componentes podem ser divididos em serviços separados, com o RabbitMQ a facilitar a comunicação entre serviços. Quando um utilizador solicita uma viagem, o ponto de partida e o destino são enviados a estes serviços, que calculam os dados necessários em paralelo. Os resultados são então apresentados ao utilizador à medida que ficam disponíveis. Se o cálculo da duração da viagem demorar mais tempo, as restantes informações serão ainda assim apresentadas rapidamente, minimizando a frustração do utilizador.
De forma semelhante, em aplicações como GrubHub ou Deliveroo, quando um utilizador seleciona comida, vários detalhes são apresentados:
- Disponibilidade dos pratos
- Tempo estimado de entrega
- Preço total do carrinho
Tal como no exemplo Uber/Lyft, estes aspetos podem ser geridos por serviços separados, utilizando o RabbitMQ para gerir as trocas de mensagens.
Quando usar RabbitMQ?
RabbitMQ é particularmente benéfico em cenários como:
- Execução de tarefas demoradas
- Escalabilidade da sua aplicação
- Melhoria da fiabilidade do sistema
Se a sua aplicação envia e-mails, gera ficheiros PDF, realiza cálculos longos ou requer paralelização de tarefas, o RabbitMQ pode ser a solução ideal para atender às suas necessidades.