可以配置 JGroups 以支持工作队列吗?

Can JGroups be configured to support work queues?

我正在寻找分布式、可靠的工作队列。远程进程空闲时可以从队列中获取工作单元。

我正在处理相当繁重的任务分配,其中消费者微服务一次只能执行一项任务。

我在示例中看到 JGroups 可以提供可靠的循环消息分发。但我还没有设法找到 消费者 可以选择何时接受任务的任何示例。

如有任何建议,我们将不胜感激。

JGroups 曾经有一个 ReplicatedQueue,但我前段时间把它去掉了。原因是我不喜欢它提供的语义:没有全序 (SEQUENCER),副本可能会不同步。此外,未以有意义的方式处理网络分区。

此外,JGroups 更多的是关于可靠的消息传递和集群管理,我不想过多关注构建块。

但是,在 jgroups-raft [1] 之上创建一个复制队列应该非常简单。

[1] https://github.com/belaban/jgroups-raft