点燃:持续到服务器停止

时间:2017-07-24 12:14:41

标签: apache ignite

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

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

服务器2:制片人。生成内容到队列。偶尔开始

服务器3:消费者。消耗队列中的内容。偶尔开始

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

请您提供正确的配置[驱逐],它会在服务器1停止之前将内容保留在队列中?

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

先谢谢。

2 个答案:

答案 0 :(得分:1)

队列没有驱逐。默认情况下,没有备份,因此很可能在启动和停止服务器时,会导致重新平衡并最终丢失某些条目。我建议做以下事情:

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

答案 1 :(得分:0)

根据Valentin Kulichenko的评论完成如下

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

客户1:制作人。生成内容到队列。偶尔开始

客户2:消费者。消耗队列中的内容。偶尔开始

制作Ignite客户端的代码:

Ignition.setClientMode(真)

val ignite = Ignition.start()