我们有一台正在生产的ES服务器。
我们现在想在另一个DC中添加一个副本,作为热/热备用故障转移。
我知道如何在mongo,redis等上执行此操作,但似乎无法找到有关如何对ES执行此操作的文档。 (ES文档似乎假设系统都在同一个子网上等)
答案 0 :(得分:3)
Elasticsearch以云形式存在,意味着如果您拥有副本,它们就会成为主 - 主模式。如果一台服务器停机,其他服务器将自动接管。索引文档时,它也会在返回之前在副本中编制索引,从而保持数据的一致性。
群集可以包含零个或多个副本,并且可以使用更新设置api配置运行时,如下所示
curl -XPUT 'localhost:9200/your_index/_settings' -d '
{
"index" : {
"number_of_replicas" : 1
}
}'
只有在有足够的节点运行时才会创建副本(分片的副本永远不会存在于与其主要节点相同的节点中)。如果无法分配副本,您的群集将进入黄色状态。
在新DC中启动一个具有相同群集名称的新弹性搜索节点。 如果使用默认配置,则无需进行任何更改,除非为节点创建相同的群集名称以发现彼此,否则可能需要在网络配置中进行更改。
警告:建议不要在单独的DC中为同一群集创建副本或弹性搜索节点,因为网络延迟会影响性能。而且它可能会影响集群的稳定性。
如果您打算在单独的DC中备份数据,可以考虑使用snapshot