Skip to content


# RabbitMQ

RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, Message Queuing Telemetry Transport, and other protocols.

CAP has supported RabbitMQ as message transporter.

## Configuration

To use RabbitMQ transporter, you need to install the following extensions from NuGet:

    PM> Install-Package DotNetCore.CAP.RabbitMQ

Next, add configuration items to the `ConfigureServices` method of `Startup.cs`.

    public void ConfigureServices(IServiceCollection services)
    {
        // ...

        services.AddCap(x =>
        {
            x.UseRabbitMQ(opt=>
            {
                //RabbitMQOptions
            });
            // x.UseXXX ...
        });
    }

#### RabbitMQ Options

The RabbitMQ configuration parameters provided directly by the CAP are as follows:

NAME | DESCRIPTION | TYPE | DEFAULT
--- | --- | --- | ---
HostName | Broker host address | string | localhost
UserName | Broker user name | string | guest
Password | Broker password | string | guest
VirtualHost | Broker virtual host | string | /
Port | Port | int | -1
TopicExchangeName | Default exchange name of cap created | string | cap.default.topic
QueueMessageExpires | Message expries after to delete, in milliseconds | int | (10 days) milliseconds

#### ConnectionFactory Options

If you need more native `ConnectionFactory` configuration options, you can set it by 'ConnectionFactoryOptions' option:

    services.AddCap(x =>
    {
        x.UseRabbitMQ(o =>
        {
            o.HostName = "localhost";
            o.ConnectionFactoryOptions = opt => {
                //rabbitmq client ConnectionFactory config
            };
        });
    });