我目前正在使用 hazelcast 编写分布式系统。我有几个关于使用 hazelcast 实现的队列的问题。
- 处理队列中数据的最佳方法是什么?我目前在每个“节点”上都有线程读取阻塞队列处理数据。这是正确的还是有一些我不知道的类负责处理这个问题,比如 JMS 或 messageListener?
- 我看到有一个生存时间设置,一旦过期就会从队列中删除条目。我的问题是......有没有办法检测从队列中删除过期项目?我知道有 Listener 但这无济于事,因为它在所有“节点”上触发,而不仅仅是一个。我正在寻找一种为每条过期消息执行代码的方法(类似于死信队列)。
如有任何意见或建议,我们将不胜感激。
谢谢
最佳答案
目前没有其他办法。因此,您将在每个节点上调用 queue.take() 的线程。 Hazelcast 团队计划添加 IQueue.addQueueConsumer(QueueConsumer),其行为类似于 JMS MessageListener
你是对的。添加监听器不是一个好方法,因为它是非常昂贵的操作。您可能想为此创建一个问题 http://code.google.com/p/hazelcast/issues .有特色当然好。
-talip @hazelcast
关于java - Hazelcast 队列信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109309/