Hazelcast 中的优先级阻塞队列
Priority Blocking Queue in Hazelcast
我正在评估 Hazelcast IMDG,以期使用它来减少一些数据库瓶颈。我们的应用程序运行在多个节点上,并行处理来自位于中间的数据库的数据。
我们使用信号量 table 来分配工作,这就是我们正在考虑用 Hazelcast 阻塞队列替换的东西。
然而,有些要处理的消息比其他消息具有更高的优先级,这让我开始怀疑,因为 Hazelcast 似乎没有 java.util.concurrent.PriorityBlockingQueue
.
的等价物
我的第一个问题是是否有办法使用 Hazelcast 实现此目的。
我的第二个问题是是否有其他 IMDG 数据网格易于配置并嵌入到允许这样做的现有应用程序中。
提前感谢您的意见。
这个 https://github.com/hazelcast/hazelcast-code-samples/tree/master/spi/priority-queue 能满足您的需求吗?
这是一个完整的示例 -- 展示了如何扩展 Hazelcast 以添加优先级队列。需要稍微调整以使其达到生产质量,并且一些单元测试不会出错。
我知道有点晚了,但 Hazelcast 终于提供了对分布式 PriorityQueue 的开箱即用支持。参见:https://github.com/hazelcast/hazelcast/pull/17201
它是常规队列的扩展,您只需在队列配置中添加一个比较器即可(https://github.com/hazelcast/hazelcast/pull/17201/files#diff-adec01c0eef8a0df650ac3c02789b91a2eafc8c2ffbb6e77c563dc88f5a5e9a2R559):
<priority-comparator-class-name>your.comparator.Class</priority-comparator-class-name>
一旦 Hazelcast IMDG 4.1 发布并添加文档,我将更新此 post。
我正在评估 Hazelcast IMDG,以期使用它来减少一些数据库瓶颈。我们的应用程序运行在多个节点上,并行处理来自位于中间的数据库的数据。
我们使用信号量 table 来分配工作,这就是我们正在考虑用 Hazelcast 阻塞队列替换的东西。
然而,有些要处理的消息比其他消息具有更高的优先级,这让我开始怀疑,因为 Hazelcast 似乎没有 java.util.concurrent.PriorityBlockingQueue
.
我的第一个问题是是否有办法使用 Hazelcast 实现此目的。 我的第二个问题是是否有其他 IMDG 数据网格易于配置并嵌入到允许这样做的现有应用程序中。
提前感谢您的意见。
这个 https://github.com/hazelcast/hazelcast-code-samples/tree/master/spi/priority-queue 能满足您的需求吗?
这是一个完整的示例 -- 展示了如何扩展 Hazelcast 以添加优先级队列。需要稍微调整以使其达到生产质量,并且一些单元测试不会出错。
我知道有点晚了,但 Hazelcast 终于提供了对分布式 PriorityQueue 的开箱即用支持。参见:https://github.com/hazelcast/hazelcast/pull/17201
它是常规队列的扩展,您只需在队列配置中添加一个比较器即可(https://github.com/hazelcast/hazelcast/pull/17201/files#diff-adec01c0eef8a0df650ac3c02789b91a2eafc8c2ffbb6e77c563dc88f5a5e9a2R559):
<priority-comparator-class-name>your.comparator.Class</priority-comparator-class-name>
一旦 Hazelcast IMDG 4.1 发布并添加文档,我将更新此 post。