Em sistemas distribuídos, middleware é uma camada de software intermediária responsável por facilitar a comunicação e integração entre aplicações, sistemas e serviços. Essa camada oferece recursos como troca de mensagens, gerenciamento de APIs, autenticação e integração entre componentes de sistemas distribuídos, permitindo que diferentes aplicações interajam, mesmo estando executando em ambientes distintos.
Entre as soluções utilizadas para comunicação assíncrona estão os message brokers, que implementam o modelo de fila de mensagens, no qual produtores enviam mensagens para uma fila e consumidores as processam posteriormente.
Considere o seguinte código em Python, que utiliza a biblioteca pika para consumir mensagens de uma fila em um broker implementado com RabbitMQ.
1 import pika
2 connection = pika.BlockingConnection(
3 pika.ConnectionParameters('localhost')
4 )
5 channel = connection.channel()
6 channel.queue_declare(queue='tarefas')
7 def callback(ch, method, properties, body):
8 print("Mensagem recebida:", body.decode())
9 channel.basic_consume(
10 queue='tarefas',
11 on_message_callback=callback,
12 auto_ack=True
13 )
14 print("Aguardando mensagens...")
15 channel.start_consuming()
Fonte: dados do elaborador
Esse código ilustra um consumidor de mensagens que se conecta a um broker RabbitMQ e recebe mensagens publicadas em uma fila.
Com base no conceito de middleware e no funcionamento de sistemas de mensageria em arquiteturas distribuídas, analise as afirmações a seguir:
I. O programa estabelece uma conexão com um servidor de mensageria e passa a atuar como consumidor de mensagens da fila denominada “tarefas”.
II. Para toda mensagem entregue ao consumidor a partir da fila tarefas, a função callback será executada para processar o conteúdo recebido.
III. A utilização de um middleware de mensageria como o RabbitMQ implica que produtores e consumidores precisam estar em execução simultaneamente para que a comunicação ocorra de maneira síncrona.
Assinale a alternativa CORRETA.