I'm going to develop my own message queue implementation in Java and I need to distribute the queue content across multiple servers so that it would provide reliability and redundancy.
In addition to that I need to persist the queue content into the file system.
Can somebody tell me what is the most suitable distributed data structure implementation to hold my queue content?
Note: That data structure must provide me the message ordering facility. That means I need to receive messages according to the order they arrived. Also while reading a message, it should be in a 'locked' state so that other consumers cant read it until the first consumer completes the reading process