Topology Issues¶
Topology issues occur when RabbitMQ objects are missing, incorrectly configured or bound incorrectly.
Queue Not Created¶
Possible causes:
- descriptor not configured correctly;
- client never started;
- topology creation disabled;
- insufficient broker permissions.
Verify:
Queue = new QueueDescriptor
{
Name = "orders.created",
Durable = true
};
Exchange Not Created¶
Verify exchange configuration.
Example:
Exchange = new ExchangeDescriptor
{
Name = "orders",
Type = ExchangeTypes.Direct,
Durable = true
};
Common issues:
- invalid exchange type;
- permissions;
- startup failures during topology creation.
Binding Not Created¶
Verify the binder configuration.
Example:
Binder = new BinderDescriptor
{
RoutingKey = "orders.created"
};
Verify in RabbitMQ Management UI that:
- exchange exists;
- queue exists;
- binding exists;
- routing key is correct.
Messages Not Routed¶
Common causes:
- routing key mismatch;
- wrong exchange type;
- missing binding.
Example:
Publisher:
orders.updated
Subscriber:
orders.created
The message will not reach the queue.
Retry Topology Missing¶
If retry is enabled:
RetryPolicy = new RetryPolicyDescriptor
{
Enabled = true
};
Verify that the following objects were created:
<queue>_dlx
<queue>_retry exchange
<queue>_retry queue
Verify the expected bindings:
DLX Exchange -> Retry Queue
Retry Exchange -> Main Queue
Diagnostic Checklist¶
Verify:
- queue configuration;
- exchange configuration;
- binding configuration;
- routing keys;
- retry topology;
- RabbitMQ permissions;
- RabbitMQ Management UI topology view.