分区感知 hazelcast 队列

Partition aware hazelcast queue

我们是否可以在 Hazelcast 分布式队列上执行分区感知操作?

因此,例如,我会在一个队列上有多个消费者节点,并且希望 'similar' 类型的消息每次都由同一个节点处理。类似类型,我指的是消息的一些业务密钥。

目前我们有一个分布式流数据处理生态系统,通过使用来自 IMap 上的本地条目侦听器的消息。一个特定的对象模型 属性 被设置为键,所以我们知道模型是按键分布在分区中的。因此,处理逻辑可以在本地执行,而无需使用分布式锁(或根据设计合同的任何锁)。我希望使用分布式阻塞队列来代替类似的行为。

这样可行吗?使用 Hazelcast 3.3.3

您知道队列(当前)不是分区数据结构吗?因此集群中只有一个成员负责存储该队列中的所有数据(另一个成员负责备份)。

您可以控制队列的存储位置,例如如果你有 2 个队列并希望它们存储在同一个分区中,请使用

foo@somekey 酒吧@somekey

在这种情况下,两个队列都存储在 'somekey' 分区中。