实际上,我正在开发一个消息传递应用程序,使用cassandra作为数据库,kafka作为消息代理。
我的问题是:我是否需要在cassandra中存储用户之间的消息?如果我这样做,那么我的数据库的大小将增长得非常快。
由于我使用的是消息队列,只要这些消息没有被释放,它们就会被存储。我听说,消息传递应用程序(如facebook messanger、whatsapp)不会将用户之间的消息内容存储在数据库中,而是只使用一个队列系统(xmpp、mqtt),一旦消息被删除,它就会立即删除消息。所以不需要存储在外部数据库中。我说得对吗?
什么是最佳实践?此外,我是否需要从法律Angular (政府或类似机构)将消息内容存储一段时间(例如,2年)?
看着http://www.planetcassandra.org/apache-cassandra-use-cases/,有很多使用cassandra作为消息应用程序的数据库后端。但是,将cassandra用作消息队列是一种反模式(请参阅cassandra文档)。
1条答案
按热度按时间e5nszbig1#
使用cassandra作为队列显然是一种反模式
不过,cassandra很适合储存信息,请阅读我在Killchat上的博客:http://www.doanduyhai.com/blog/?p=1859 为消息存储提供可能的数据模型