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:
- O remetente conecta-se ao RabbitMQ e envia uma mensagem ao exchange.
- O exchange encaminha a mensagem para uma ou várias filas de acordo com as regras (binding).
- 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()