Biblioteca .NET moderna para facilitar a integração de aplicações e microsserviços com RabbitMQ, incluindo suporte a padrões de Retry, Dead-Letter Queue, multi-tenant e envelopes padronizados de mensagens.
License
—
Deps
8
Install Size
—
Vulns
✓ 0
Published
Feb 21, 2026
$ dotnet add package Aj.RabbitMQ.Core🚀 Biblioteca .NET para abstração de mensageria no RabbitMQ, totalmente extensível, orientada a microsserviços e multi-tenant.
✅ Conexão centralizada (singleton)
✅ Configuração via IConfiguration e DataAnnotations
✅ Declaração de exchanges, filas, bindings padronizados
✅ Suporte a prefetch (QoS)
✅ Envelope de mensagens estruturado (MessageEnvelope)
✅ Retry e DLQ integrado (padrão de robustez)
✅ Helpers para exchanges direct, topic, fanout
✅ Extensões para injeção no IServiceCollection
no seu projeto:
dotnet add package Aj.RabbitMQ.Core
adicione ao seu appsettings.json:
"RabbitMQSettings": {
"HostName": "localhost",
"UserName": "admin",
"Password": "123456",
"VirtualHost": "/",
"Port": 5672,
"RoutingKey": "order.vtex"
}
OBS: A Propriedade "RoutingKey" so deve ser informada para definir em qual fila os consumers devem se conectar, caso o serviço seja um publisher manter como null e definir a routingkey no momento da publicação.
e registre no Program.cs:
builder.Services.AddRabbitMQServices(builder.Configuration);
var connectionFactory = serviceProvider.GetRequiredService<RabbitMQConnectionFactory>();
var channel = await connectionFactory.GetChannelAsync();
por padrão, sugerimos:
.retry com x-message-ttl.dlq para mensagens definitivasdirect.orderdirect.retrydirect.dlqawait _channel.ExchangeDeclareAsync(
exchange: "direct.order",
type: "direct",
durable: true,
autoDelete: false
);
await _channel.QueueDeclareAsync(
queue: "order.billing.retry",
durable: true,
exclusive: false,
autoDelete: false,
arguments: new Dictionary<string, object>
{
{ "x-message-ttl", 300000 },
{ "x-dead-letter-exchange", "direct.order" },
{ "x-dead-letter-routing-key", "order.created" }
}
);
Pull Requests são muito bem-vindos!
Basta abrir uma issue ou PR neste repositório.
MIT