有当谈到持续可扩展的队列,包括这一个来自DataStax网站是Cassandra是不是一个好的选择各地的许多建议:http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets基于Cassandra的队列是一种反模式。什么是解决方案?
然而,极少数地方提到的替代品。我想我可能需要一个。
具体而言,我的场景是: 有些任务(假设有100多万个需要在将来某个时候执行)。因此,每个任务都有一个关联的“runAt”属性,任务需要在其“runAt”时间段内运行(但允许有小的延迟)。当任务完成时,他们需要从队列中删除。与此同时,从现在开始到现在1年之间,任意“runAt”值都会以任意比率添加新任务(假设为100秒/秒或更多)。
一个可能的实现将利用Cassandra的能力来对一行内的列进行排序并使用读取/删除技术的一些变体(即读取队列的顶部,执行任务并将其从队列),这非常类似于所提到的反模式。
那么最有意义的是什么?尝试调整建议的解决方法,以使该特定问题按预期的规模工作?或者完全不同的技术更适合这项工作?
任何帮助/意见,将不胜感激。
谢谢,我知道这是一个反模式的原因。看起来虽然是一种相当普遍的情况,所以我希望有一个搁置实施。 – 2014-10-22 12:34:29
这是可行的,但并不容易。免责声明,我是贡献者,但这是一个基于Cassandra的队列,它不使用删除https://github.com/paradoxical-io/cassieq – devshorts 2016-02-23 03:10:06