Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET Fast Persistent Queue

Tags:

.net

queue

I am looking for a queue system where multiple different subscribers can pull items off a centralized queue. The messages will be very lightweight, but i need something that is persistent and very fast as the volume of messages will be large. MSMQ is a little heavy and i am looking for something light. Suggestions?

like image 729
Matt Avatar asked Jun 20 '11 23:06

Matt


People also ask

What is a persistent queue?

persistent queue. noun. A feature that you configure to take data that is in an input queue and store it to files on disk. Using a persistent queue can prevent data loss if the forwarder or indexer has too much data to process at one time.

Is message queue persistent?

Queues make your data persistent, and reduce the errors that happen when different parts of your system go offline. By separating different components with message queues, you create more fault tolerance.

What are the types of message queues?

The system has different types of message queues: workstation message queue, user profile message queue, job message queue, system operator message queue, and history log message queue.


2 Answers

There is a really nice project on codeproject. That is lightweight alternative to MSMQ. You can use persistence storage of your own choice, by default it uses Sqlite. This is really good.

like image 103
crypted Avatar answered Nov 16 '22 01:11

crypted


I think the question here is do you "need" persistance? If you need protection from duplicates, multiple clients and persistence then you will be all but forced to pursue a locking scheme for your queue manager, which will cost you in performance. Persistance itself will hurt you unless you put the queue storage on a high speed file share.

If you can rearchitect your app to survive a queue crash (keep a feed at the server, or have a request / response architecture for messages) then you can get around the need for persistance. If you do that then you will find that your queue manager runs exclusively in memory and will be extremely fast.

like image 27
Spence Avatar answered Nov 15 '22 23:11

Spence