I'm currently building a rabbitmq cluster deployment on a cloud-based system, AWS. Due to the nature of this, the system must be able to lose nodes while still maintaining all client data that is being processed through the system. Currently I have the data of rabbitmq's mnesia being put into AWS EFS where I can access it from any machine running in EC2. All clustering of rabbitmq is already handled. The part that I'm stuck scratching my head on is that whenever the nodes go down all messages, queues, and exchanges are lost when coming back up. Because of mnesia and erlang I am removing schema.DAT so that the node may cluster again. I am also removing all past clustering information so when a node comes up it is always seen as a new node and old nodes are cut from the cluster.
So it comes down to my question: How do I go about preserving rabbitmq messages, queue, exchanges as nodes travel across the cloud?
I have already tried:
- All messages are marked persistent
- All queues are marked durable
- All exchanges are marked durable
- Copying persistent message directory
- Copying durable queue and exchange files
If anyone has insight on this problem I would greatly appreciate your input!
Troy