Skip to content

Commit

Permalink
Start Rabbitmq documentation and upgrade guide
Browse files Browse the repository at this point in the history
  • Loading branch information
TravisNickels committed Jan 22, 2025
1 parent 0a09e49 commit 2bdb34a
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions transports/rabbitmq/connection-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ snippet: rabbitmq-external-auth-mechanism

partial: add-cluster-node

partial: management-api-url

## Controlling the prefetch count

When consuming messages from the broker, throughput can be improved by having the consumer [prefetch](https://www.rabbitmq.com/consumer-prefetch.html) additional messages.
Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Configuring RabbitMQ delivery limit check

> [!NOTE]
> RabbitMQ version 4.0 and above sets a default delivery limit value of 20 messages on queue creation. Setting the delivery limit to unlimited (-1) is critical for the proper functioning of the NServiceBus recoverability process. Ensure that this setting is configured in your RabbitMQ node if the check is disabled.
The transport can verify that the RabbitMQ delivery limit is set to unlimited (-1) using the management API. This ensures that the NServiceBus recoverability process works correctly, preventing potential message loss. For this check to function, the RabbitMQ management plugin must be enabled on the RabbitMQ node.

To configure the HTTP client and perform the delivery limit check, set the authentication details as follows:

```csharp
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), "host=localhost")
{
ManagementApiUrl = "http://username:password@localhost:15672";
}

// Or
var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
transport.ManagementApiUrl("http://username:password@localhost:15672");
```
18 changes: 18 additions & 0 deletions transports/upgrades/rabbitmq-9to10.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,24 @@ The transport now uses [RabbitMQ.Client v7.0.0](https://www.nuget.org/packages/R

For details, see the [RabbitMQ client changelog](https://github.com/rabbitmq/rabbitmq-dotnet-client/releases/tag/v7.0.0).

## RabbitMQ Management API

The transport has introduced a client connection to the HTTP-based RabbitMQ management API. This requires the [rabbitmq management plugin](https://www.rabbitmq.com/docs/management#getting-started) to be enabled on the node. The client uses [basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) to connect with the RabbitMQ management API and is configured via the `ManagementApiUrl` transport property.

For more details about the configuration, see [Configuring RabbitMQ delivery limit check](/transports/rabbitmq/connection-settings.md#configuring-rabbitmq-delivery-limit-check).

```CSharp
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), "host=localhost")
{
ManagementApiUrl = "http://username:password@localhost:15672";
}

// Or
var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
transport.ManagementApiUrl("http://username:password@localhost:15672");
```

### `IRoutingTopology` Updates

The following changes have been made to `IRoutingTopology`:
Expand Down

0 comments on commit 2bdb34a

Please sign in to comment.