首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个实例轮流从Hazelcast阻塞队列中获取,如何尽可能避免读取重复项

两个实例轮流从Hazelcast阻塞队列中获取,如何尽可能避免读取重复项
EN

Stack Overflow用户
提问于 2021-03-07 07:37:37
回答 1查看 192关注 0票数 0

这里有一些背景:我们有几个共享Hazelcast阻塞quque的服务实例,该服务主要有两个任务:

  1. 有一个调度程序将项永久地放到队列中,假设每5分钟就有100个条目(

)

  1. 另一个监视队列的类,只要它有任何项,它就会启动进程(基本上一项可能需要1到2秒的时间处理)

关于上述解决方案,我有几个问题:

  1. how避免在队列中添加重复项,以防任何两个实例同时运行调度程序(例如,如果队列中有'A','B‘,instanceA将放置'A','D',肯定会过滤掉A,因为它在队列中,所以instanceA会将D放入队列,同时instanceB放置D,因为它的本地队列此时没有D)

  1. how to aovid instanceA和instanceB接受重复的项目(例如,实例A获取第一项,但是队列还没有到实例B,实例B也会接受相同的第一项吗?)我们可能不需要严格地避免一式两份的物品,但尽量避免。

通过电话编辑,如果有拼写问题道歉。也许更好的解决办法是转向红色或其他集中的方式?

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 02:58:21

我不熟悉哈泽尔卡斯特。但我知道Redis有办法。

  1. 如何避免队列中重复的项?

您可以使用Redis Set存储不重复的项,在将项目推送到redis消息队列之前,只需检查Redis Set中是否存在项,如果存在,则退出推送操作。

如何避免项目被duplicatedly?带走

您可以使用Redis List作为消息队列,使用rpop原子操作,instanceA和instanceB不能接受重复项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66514217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档