问题
Our application is currently serving around 1500 transactions per second. We have Rabbit as a queue. But we store only the transaction ID in Rabbit, the actual message which is 1-5 mb in size, we are storing in Redis (an in-memory database). My question is, can we remove Redis altogether, and just use Rabbit - will it sustain?
One more thing: can we increase the number of Rabbit instances horizontally, as we expect load will scale up pretty fast (we have already tested an master master replication successfully).
回答1:
In general this sounds like not a good idea to me. Rabbit is a messaging system, not a database.
The messages have to be stored in Rabbit somewhere. If some Rabbit instance gets down, you'll lose your messages. If you use persistence, the situation will be even worse:
Clustered Rabbit should synchronize each and every message, so restarting any Rabbit node that has a replicated node will take ages.
In fact, I believe now you have the best solution :)
来源:https://stackoverflow.com/questions/41610842/rabbitmq-limitations-and-clustering