Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RabbitMQ - Alguns detalhes

RabbitMQ - Alguns detalhes

Algumas configurações simples que o RabbitMQ oferece para seus usuários

Mattheus Cassundé

September 11, 2021
Tweet

More Decks by Mattheus Cassundé

Other Decks in Technology

Transcript

  1. O que é Rabbit • Broker de mensagens • Desenvolvido

    em erlang • Implementa vários protocolos de comunicação com: ◦ AMPQ ◦ MQTT ◦ STOMP ◦ HTTP • Mensagens são processadas em memória • Ferramenta de mercado • Abre apenas uma conexão TCP com cada consumir
  2. Broker Aplicação 1 Aplicação 2 Publish Consumer tcp tcp sale_queue

    cancel_queue sale_queue cancel_queue Funcionamento básico
  3. channel 2 Broker Aplicação 1 Aplicação 2 Publish Consumer tcp

    tcp channel 1 sale_queue cancel_queue sale_queue cancel_queue Funcionamento básico
  4. Exchange Uma mensagem não vai diretamente para uma fila Vai

    para uma exchange Exchange decide para qual ou quais filas vai encaminhar Usa route_key Tipos: • Direct • Fanout • Topic • Headers
  5. Sempre que uma fila conecta-se em uma exchange deve ser

    definido uma routing_key. Toda mensagem deve ter uma routing_key para que o exchange saiba para qual fila deverá ser encaminhada a mensagem. Exchange - Routing Key Aplicação 1 Aplicação 3 RK = sale Aplicação 2 RK = cancellation
  6. Exchange - Direct Envia mensagem direto para uma fila específica

    Cada fila vinculada deve ter um routing_key específica para esse tipo de exchange Aplicação 1 Aplicação 3 Aplicação 2 exchange RK= sale RK= cancellation RK= cancellation RK= sale
  7. Exchange - Fanout Enviar mensagem para todas as filas vinculadas

    a exchange Aplicação 1 Aplicação 3 Aplicação 2 exchange
  8. Exchange - Topic Podemos colocar regras encaminhamento de mensagens Um

    exchange do tipo TOPIC consegue identificar essas regras e encaminhar de acordo. *log_test : encaminha todas as mensagens cujo o routing_key finalize com log_test *teste*: encaminha todas as mensagens cujo o routing_key contenha teste
  9. Exchange - Topic Aplicação 1 Aplicação 3 Aplicação 2 exchange

    RK= *cancel RK= *sale* RK= sale_cancel RK= sale
  10. Configurações Auto Expire Tempo que uma fila pode ficar sem

    mensagem ou sem consumidor, quando atingir esse tempo rabbit removerá a mesma.
  11. Configurações Message TTL Tempo de vida da mensagem, quando uma

    mensagem fica X tempo o próprio rabbit remove a mesma da fila