无论如何,我们可以在Hazelcast分布式队列上执行分区感知操作吗?
例如,我将在一个队列中有多个消费者节点,并且希望每次都由同一节点处理"相似"类型的消息。通过类似的类型,我的意思是消息的一些业务密钥。
目前,我们正在拥有一个分布式流数据处理生态系统,通过在 IMap 上使用来自本地条目侦听器的消息。特定的对象模型属性被设置为键,因此我们知道模型按键分布在分区中。因此,处理逻辑可以在本地执行,而无需使用分布式锁(或根据设计合同根本不使用任何锁)。我希望使用分布式阻塞队列会有类似的行为。
这可行吗?使用 Hazelcast 3.3.3
您知道队列(当前)不是分区数据结构吗?因此,集群中有一个成员负责存储该队列中的所有数据(另一个成员负责备份)。
您可以控制队列的存储位置,例如,如果您有 2 个队列并希望它们存储在同一个分区中,请使用
foo@somekeybar@somekey
在这种情况下,两个队列都存储在"somekey"分区中。