2017-07-24 35 views
0

我们正在使用Ignite的分布式数据结构 - IgniteQueue。请在下方找到服务器详细信息Ignite:持续到服务器停止

服务器1:初始化队列并连续运行。

服务器2:生产者。生成内容到队列中。立即开始

服务器3:消费者。使用队列中的内容。立即开始

问题:当生产者和消费者之间存在10分钟的时间差时,队列中的数据就会丢失。

您能否提供正确的配置[驱逐],使队列中的内容持续存在,直到服务器1停止?

最终应该不会有任何数据丢失。

在此先感谢。

+0

这听起来像一个bug,请你分享我们有一个复制者?像小POM项目会显示这个问题? – Michael

回答

1

排队没有驱逐。并且默认情况下没有备份,所以很可能当您启动和停止服务器时,会导致重新平衡并最终导致某些条目丢失。我建议执行以下操作:

  • 启动消费者和生产者作为客户端而不是服务器。保存数据的服务器拓扑应始终尽可能稳定。
  • 使用CollectionConfiguration#setBackups为队列中使用的基础高速缓存配置一个或多个备份。这将有助于保持状态,即使其中一台服务器出现故障。
+0

它的作品!非常感谢Valentin Kulichenko :) – Raghav

0

完成按瓦伦丁Kulichenko的评论如下

服务器1:初始化队列和连续运行。

客户1:生产者。生成内容到队列中。立即开始

客户2:消费者。使用队列中的内容。现在开始,然后

代码,使的Ignite客户:

Ignition.setClientMode(真)

VAL点燃= Ignition.start()