我们正在使用Ignite的分布式数据结构 - IgniteQueue。请在下面找到服务器详细信息
服务器1:初始化队列并继续运行。
服务器2:制片人。生成内容到队列。偶尔开始
服务器3:消费者。消耗队列中的内容。偶尔开始
问题:当生产者和消费者之间存在10分钟的时间间隔时,队列中的数据就会丢失。
请您提供正确的配置[驱逐],它会在服务器1停止之前将内容保留在队列中?
最终不应该有任何数据丢失。
先谢谢。
答案 0 :(得分:1)
队列没有驱逐。默认情况下,没有备份,因此很可能在启动和停止服务器时,会导致重新平衡并最终丢失某些条目。我建议做以下事情:
CollectionConfiguration#setBackups
为队列使用的基础缓存配置一个或多个备份。即使其中一个服务器出现故障,这也有助于保持状态。 答案 1 :(得分:0)
根据Valentin Kulichenko的评论完成如下
服务器1:初始化队列并继续运行。
客户1:制作人。生成内容到队列。偶尔开始
客户2:消费者。消耗队列中的内容。偶尔开始
制作Ignite客户端的代码:
Ignition.setClientMode(真)
val ignite = Ignition.start()