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);