克隆一个elasticsearch docker

我有以下设置:

  • 一个es-docker(现场)
  • 一个es-docker(工作)

所以我希望工作的docker可以运行一些数据修改,并将其保存在es应用程序中。 (这些更改将会持续几个小时)。

在完成这些更改后,我希望复制工作泊坞窗(包含所有数据)并覆盖实时泊坞窗。

所以我可以在几个小时内运行这些更改,而不会发生停机时间(或简单的停机时间)。

但是我不知道如何“复制”原来包含的所有数据。

谢谢你的提示。

Elasticsearch权威指南概述了使用索引别名 来实现像您的用例一样的零停机时间的过程 。

这个想法是创build一个索引别名,您的应用程序将始终用来访问实时数据。

给定一个名为“alias1”的别名,指向名为“index1”的索引,执行以下步骤:

  1. 创build一个名为“index2”的新索引
  2. 运行你的批量索引过程
  3. 交换“alias1”指向“index2”
  4. 清理“index1”

别名交换发生在一次调用中,Elasticsearch以primefaces方式执行操作,为您提供所需的零停机时间。 这个调用看起来像这样:

POST /_aliases { "actions" : [ { "remove" : { "index" : "index1", "alias" : "alias1" } }, { "add" : { "index" : "index2", "alias" : "alias1" } } ] }