I'm developing high-scalable application, so I decided to use Hazelcast for it. I have one frontend server, which puts messages for nodes. Every node in cluster change it's workload in background thread in distributed map, so, frontend server choose queue (every node has it's own message queue) to put message in. My question is: Is Hazelcast suitable for such design (we need workload distribution and load balancing) or may be some alternatives? I like Hazelcast for it's simplicity and nice design.
2 Answers
Hazelcast is great, it's very lightweight and easy to use, however, it's still in development and there are a few issues when using it.
If you look here: http://code.google.com/p/hazelcast/issues/list you can see that there are some bugs with the queue data structure while using transactions. Overall, it's provides what it advertises and basically gives a distributed cache for free.
-
1They do update their bugs list quite often and get around fixing some of them. I submitted a bug report a while back and now it's fixed. So at least we know there are plenty of people working on it. – Jul 11 '11 at 14:24
-
They've added more features to Hazelcast that includes setting minimal initial cluster size etc. Stability seems to have improved as well. One thing that bugs me a little bit is that different versions of Hazelcast clusters conflict with to each other. – Aug 10 '11 at 19:41
I have first hand experience with hazelcast. The version we went to production with is version 1.9.4. We recently upgraded to 2.2, and now 2.3 is the latest. I am quite pleased with it. What you are describing is a pretty good use case for hazelcast. I had a similar use case where each node has its own queue and messages are pushed to the appropriate queue based on which node the client was connected to. It worked great and the business loved it.

- 21
- 2