Bunny é um cliente RabbitMQ que foca na facilidade de uso. É completo em recursos, suporta todos os recursos recentes do RabbitMQ e não possui dependências pesadas.
Bem aqui!
Pode-se usar o Bunny para fazer aplicativos Ruby interoperarem com outros aplicativos (ambos construídos em Ruby ou não). A complexidade e o tamanho podem variar desde simples filas de trabalho até fluxos de trabalho complexos de processamento de dados em vários estágios que envolvem muitos aplicativos criados com todos os tipos de tecnologias.
Exemplos específicos:
Coletores de eventos, aplicativos de métricas e análises podem agregar eventos produzidos por vários aplicativos (Web e não) na rede da empresa.
Um aplicativo Web pode rotear mensagens para um aplicativo Java que funcione com gateways de entrega de SMS.
Os jogos MMO podem usar o roteamento flexível fornecido pelo RabbitMQ para propagar notificações de eventos para jogadores e locais.
As atualizações de preços provenientes de mercados públicos ou outras fontes podem ser distribuídas entre as partes interessadas, desde sistemas de negociação até pontos de venda numa região geográfica específica.
Os agregadores de conteúdo podem atualizar os índices de pesquisa de texto completo e de pesquisa geoespacial, delegando o trabalho real de indexação a outros aplicativos no RabbitMQ.
As empresas podem fornecer APIs de streaming/push para seus clientes, parceiros ou apenas para o público em geral.
Os sistemas de integração contínua podem distribuir construções entre várias máquinas com várias configurações de hardware e software usando recursos avançados de roteamento do RabbitMQ.
Um aplicativo que monitora atualizações a partir de um fluxo em tempo real (seja dados de mercado ou fluxo do Twitter) pode propagar atualizações para as partes interessadas, incluindo aplicativos da Web que exibem essas informações em tempo real.
Suporte para versões Modern Bunny
Para ambientes que usam TLS, Bunny espera que as instalações Ruby usem uma versão OpenSSL recente o suficiente que inclua suporte para TLS 1.3 .
Bunny funciona suficientemente bem no JRuby, mas existem bugs conhecidos do JRuby em versões anteriores ao JRuby 9000 que causam alto consumo de CPU. Os usuários do JRuby devem usar o March Hare.
Bunny 1.7.x
foi a última versão a suportar CRuby 1.9.3 e 1.8.7
Os lançamentos Modern Bunny têm como alvo a série de lançamentos RabbitMQ atualmente suportada.
Registro de alterações.
Para usar o Bunny em um projeto gerenciado com Bundler:
gem "bunny" , ">= 2.23.0"
Para instalar o Bunny com RubyGems:
gem install bunny
Abaixo está um pequeno trecho que demonstra como publicar e consumir mensagens de forma síncrona ("API pull") com o Bunny.
Para um tutorial de 15 minutos usando exemplos mais práticos, consulte Introdução ao RabbitMQ e Ruby usando Bunny.
require "bunny"
# Start a communication session with RabbitMQ
conn = Bunny . new
conn . start
# open a channel
ch = conn . create_channel
ch . confirm_select
# declare a queue
q = ch . queue ( "test1" )
q . subscribe ( manual_ack : true ) do | delivery_info , metadata , payload |
puts "This is the message: #{ payload } "
# acknowledge the delivery so that RabbitMQ can mark it for deletion
ch . ack ( delivery_info . delivery_tag )
end
# publish a message to the default exchange which then gets routed to this queue
q . publish ( "Hello, everybody!" )
# await confirmations from RabbitMQ, see
# https://www.rabbitmq.com/publishers.html#data-safety for details
ch . wait_for_confirms
# give the above consumer some time consume the delivery and print out the message
sleep 1
puts "Done"
ch . close
# close the connection
conn . close
Para um tutorial de 15 minutos usando exemplos mais práticos, consulte Introdução ao RabbitMQ e Ruby usando Bunny.
Os guias de documentação do Bunny estão em docs/guides
neste repositório:
Alguns guias de documentação altamente relevantes do RabbitMQ:
Referência da API Bunny.
Bunny tem uma lista de discussão. Use-o para todas as perguntas, investigações e discussões. Os problemas do GitHub devem ser usados para que mantenedores e colaboradores específicos, bem compreendidos e acionáveis possam trabalhar.
Nós encorajamos você também a participar da lista de discussão da lista de discussão RabbitMQ. Sinta-se à vontade para fazer qualquer pergunta que possa ter.
Se você encontrar um bug que você entende bem, um padrão ruim, uma documentação incorreta ou pouco clara ou um recurso ausente, registre um problema no GitHub.
Por favor, use a lista de discussão do Bunny para perguntas, investigações e discussões. Os problemas do GitHub devem ser usados para que mantenedores e colaboradores específicos, bem compreendidos e acionáveis possam trabalhar.
Ao registrar um problema, especifique quais versões do Bunny e do RabbitMQ você está usando, forneça o conteúdo recente do arquivo de log do RabbitMQ, rastreamentos de pilha de exceções completos e etapas para reproduzir (ou casos de teste com falha).
O outro cliente Ruby RabbitMQ amplamente utilizado é o March Hare (somente JRuby). É uma biblioteca madura que requer RabbitMQ 3.3.x ou posterior.
Consulte CONTRIBUTING.md para obter mais informações sobre a execução de vários conjuntos de testes.
Lançado sob a licença do MIT.