Sobes.tech
Junior — Middle

Qual é a interação entre o remetente e o destinatário no RabbitMQ?

sobes.tech IA

Resposta da IA

No RabbitMQ, a interação entre o remetente de mensagens (produtor) e o destinatário (consumidor) ocorre através de um intermediário: o broker de mensagens. O remetente publica mensagens numa fila ou num intercâmbio (exchange), e o destinatário subscreve-se à fila e recebe as mensagens dela.

Principais passos:

  1. O remetente conecta-se ao RabbitMQ e envia uma mensagem ao exchange.
  2. O exchange encaminha a mensagem para uma ou várias filas de acordo com as regras (binding).
  3. O destinatário conecta-se à fila e recebe as mensagens, processando-as.

Isto permite trocar dados de forma assíncrona, descarregando componentes e aumentando a fiabilidade do sistema.

Exemplo em Python usando pika:

import pika

# Remetente
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
channel.basic_publish(exchange='', routing_key='task_queue', body='Hello World!')
connection.close()

# Destinatário
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)

def callback(ch, method, properties, body):
    print(f"Recebido {body.decode()}")
    ch.basic_ack(delivery_tag=method.delivery_tag)

channel.basic_consume(queue='task_queue', on_message_callback=callback)
channel.start_consuming()