我们正在尝试构建一个系统,该系统从Cassandra数据库获取要执行的任务列表,然后通过某种群体共识创建执行计划(最好在一个节点上),然后由整个协议执行并执行服务器集群。我们真的不想添加任何额外的软件,如Redis或AMPQ系统,而是直接在运行作业的所有服务器上建立共识。到目前为止,我们已经找到了Skiff,这是Raft算法的一个实现,看起来它可以完成任务,但我想知道是否有人以纯Node.js的方式找到了一个优雅的解决方案,而不涉及外部消息系统。< / p>
答案 0 :(得分:2)
Cassandra支持轻量级事务,这基本上是Paxos实现,提供可线性化的一致性和CAS操作(共识)。因此,您可以使用Cassandra本身来序列化执行计划。