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?
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.
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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With