Skip to main content

Propriedades do RabbitMQ | queue, durable, exclusive, autoDelete, arguments, autoAck, consumer, exchange, routingKey, basicProperties, body, Persistent, ContentType, CorrelationId, ReplyTo, Headers, prefetchSize, prefetchCount, global | CSharp

  • Propriedades do RabbitMQ | queue, durable, exclusive, autoDelete, arguments, autoAck, consumer, exchange, routingKey, basicProperties, body, Persistent, ContentType, CorrelationId, ReplyTo, Headers, prefetchSize, prefetchCount, global | CSharp

1. Propriedades do QueueDeclare


queue

Nome da fila que será criada ou usada.

Exemplo:

channel.QueueDeclare(queue: "fila.teste", durable: true, exclusive: false, autoDelete: false);

durable

Define se a fila persiste após um restart do RabbitMQ.

Exemplo:

channel.QueueDeclare("fila.persistente", durable: true, exclusive: false, autoDelete: false);

exclusive

Fila só pode ser usada pela conexão que a criou.

Exemplo:

channel.QueueDeclare("fila.exclusiva", durable: false, exclusive: true, autoDelete: true);

autoDelete

Remove a fila automaticamente quando não houver consumidores ativos.

Exemplo:

channel.QueueDeclare("fila.autoDelete", durable: false, exclusive: false, autoDelete: true);

arguments

Parâmetros adicionais como TTL, DLX, limite etc.

Exemplo:

channel.QueueDeclare(
"fila.ttl",
durable: true,
exclusive: false,
autoDelete: false,
arguments: new Dictionary<string, object> {
{ "x-message-ttl", 10000 },
{ "x-dead-letter-exchange", "dlx.exchange" }
}
);

2. Propriedades do Consumo (BasicConsume)


queue

Nome da fila de onde as mensagens serão consumidas.

Exemplo:

channel.BasicConsume(queue: "fila.teste", autoAck: false, consumer: consumer);

autoAck

Define se o ACK é automático ou manual.

Exemplo (ACK manual):

channel.BasicConsume("fila.teste", autoAck: false, consumer);

consumer

Objeto responsável por receber as mensagens.

Exemplo:

var consumer = new AsyncEventingBasicConsumer(channel);
consumer.Received += async (s, ea) =>
{
Console.WriteLine("Mensagem: " + Encoding.UTF8.GetString(ea.Body.Span));
channel.BasicAck(ea.DeliveryTag, false);
};

3. Propriedades de Publicação (BasicPublish)


exchange

Exchange onde a mensagem será enviada.

Exemplo:

channel.BasicPublish(exchange: "minha.exchange", routingKey: "rota.x", basicProperties: null, body: body);

routingKey

Chave usada para roteamento da mensagem.

Exemplo:

channel.BasicPublish("", "fila.teste", null, Encoding.UTF8.GetBytes("Olá"));

basicProperties

Metadados da mensagem.

Exemplo:

var props = channel.CreateBasicProperties();
props.Persistent = true;
props.ContentType = "application/json";

channel.BasicPublish("", "fila.teste", props, Encoding.UTF8.GetBytes("{\"msg\":\"oi\"}"));

body

Conteúdo da mensagem em bytes.

Exemplo:

var body = Encoding.UTF8.GetBytes("Mensagem de teste");
channel.BasicPublish("", "fila.teste", null, body);

4. Propriedades do Prefetch (BasicQos)


prefetchSize

Limite de bytes de mensagens não confirmadas (geralmente 0).

Exemplo:

channel.BasicQos(prefetchSize: 0, prefetchCount: 5, global: false);

prefetchCount

Quantidade máxima de mensagens não confirmadas por consumidor.

Exemplo:

channel.BasicQos(0, 10, false);

global

Determina se o prefetch vale para o canal inteiro ou para apenas um consumidor.

Exemplo:

channel.BasicQos(0, 5, global: true);