队列反模式Cassandra解决方案



我有一个消息队列表,其中包含从用户a发送给用户B的消息,但还没有被用户B读取。用户B读取消息后,消息从队列表传输到历史表。如我所知,队列表是一种反模式。

解决这个问题的正确方法是什么?只有一个表的额外列,如(ReadStatus)?但是随后我们遇到了与分区键相关的问题(队列分区键就足够了)。历史分区键应该是- (SenderId, ReceiverId))

你知道Cassandra不适合队列数据集是对的。

有一种方法可以对数据进行建模,这样就可以避免将数据分组到表中,然后在处理完数据后截断表,从而迭代墓碑(已删除或过期的行)。

我从Ryan Svihla的博客文章《理解删除》中学到了这个技巧。干杯!

最新更新