##1. INTRODUCTION
This project is created based on the idea of EasyNetQ, since Mike Hadlow used MIT licence, I hope he doesn't mind when I use his source code in this project.
I was so lucky to have 2 chances to work with RabbitMQ in my 2 recent projects. EasyNetQ is the library I looked into at first place. Honestly, It's a good implementation, the author covered many problems he got with RabbitMQ and I learnt from that as well. However, I created this project for below reasons:
- I need an easier & flexible way to define Exchange names and Queue names.
- I want to use Fanout Exchange and I don't need the library so smart to create Exchanges/Queues automatically which EasyNetQ was doing.
- I want the messages to be consumed parallel.
- I need more flexibilities to inject behaviors for logging, error handling, object serializing, etc.
- And I want to be busy :D
Alright, to publish a message, you just need something like:
var tunnel = RabbitTunnel.Factory.Create();
tunnel.Publish(new OrderDetail
{
Name = "IPad 3",
Color = "Black",
Amount = 1
});
To subscribe:
var tunnel = RabbitTunnel.Factory.Create();
tunnel.SubscribeAsync<OrderDetail>("SubscriptionKey", msg =>
{
// Process message here
});
Ofcourse you're gonna need a connection string to RabbitMQ server, exchange and queue defined to make it work. Please go to document page for more details how to run the test projects.
Beside Burrow.NET, I have implemented Burrow.Extras and Burrow.RPC which provide some utilities to play with RabbitMQ using C# such as priority queue implementation and RPC.
##2. WHERE TO START?
- Install RabbitMQ
- Create exchange (type *direct): Burrow.Exchange
- Create queue: Burrow.Queue.BurrowTestApp.Bunny
- Bind above queue to exchange Burrow.Exchange
- Get latest source code
- Run Burrow.Publisher to publish messages
- Run Burrow.Subscriber to subscribe messagages asynchronously from the queue.
##3. DOCUMENT
Documentation can be found at github wiki page: https://github.com/vanthoainguyen/Burrow.NET/wiki/_pages
Some blog posts:
- Messaging with RabbitMQ and Burrow.NET
- RabbitMQ Exchanges & Queues naming convention with Burrow.NET
- Custom Burrow.NET TunnelFactory & RabbitMQ
- Things you can easily change in Burrow.NET
- Programmatically create RabbitMQ Exchange and Queue with Burrow.NET
- Priority With RabbitMQ implementation in .NET
- Implement RPC service using Burrow.NET and RabbitMQ
- Monitor RabbitMQ queues & count total messages
Nuget library is also added at http://nuget.org/packages/Burrow.NET
##4. LICENCE http://sam.zoy.org/wtfpl/COPYING