我们的应用程序目前每秒提供约1500笔交易。我们将Rabbit作为队列。但我们只在Rabbit中存储事务ID,实际消息的大小为1-5 mb,我们存储在Redis(内存数据库)中。我的问题是,我们可以完全删除Redis,只使用Rabbit - 它会持续吗?
还有一件事:我们可以横向增加Rabbit实例的数量,因为我们预计负载会非常快地扩展(我们已经成功测试了主主机复制)。
答案 0 :(得分:3)
总的来说,这对我来说听起来不是一个好主意。 Rabbit是一个消息传递系统,而不是数据库。
消息必须存储在Rabbit的某个地方。如果某个Rabbit实例发生故障,您将丢失消息。如果你使用持久性,情况会更糟:
Clustered Rabbit应该同步每条消息,因此重新启动任何具有复制节点的Rabbit节点将需要很长时间。
事实上,我相信现在你有最好的解决方案:)