Swapping out MSMQ for RabbitMQ in NServiceBus

2020-06-03 06:25发布

问题:

Udi mentions here that "people have swapped out the MSMQ layer of NServiceBus and plugged in RabbitMQ in its place".

I'm looking to do the same thing with the end goal of being able to run an app built with NServiceBus on Mono/Linux with AMQP.

Before diving in though I'd like to get some feedback from people who might have done this already about pitfalls to avoid, red herrings etc.

Alternatively if the approach is a massive undertaking, it might be best to just use RabbitMQ directly, but if possible I'd like to stick with NServiceBus.

回答1:

You might want to take a look at https://github.com/machine/machine.mta. Although the project description talks about MassTransit (another service bus impl. for .net), there's also a NServiceBus transport.

I'm in the process of converting the NServiceBus implementation so it can be use in Rhino ServiceBus..



回答2:

MassTransit runs RabbitMQ as a supported transport:

ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMq();
    sbc.ReceiveFrom("rabbitmq://localhost/app1")
});

Just do install-package masstransit.rabbitmq and make sure to change your console application framework to '.Net 4.0' instead of '.Net 4.0 Client Profile'.



回答3:

There is a project on Google Code you might take a look at:

http://code.google.com/p/nservicebusrabbitmq/



回答4:

NServiceBus 4.0 will come with official support for RabbitMQ