elasticsearch:添加副本的步骤?

Jon*_*ica 2 elasticsearch

我们有一个正在生产中的 ES 服务器。

我们现在想要在另一个 DC 中添加一个副本,作为热/热备用故障转移。

我知道如何在 mongo、redis 等上执行此操作,但似乎找不到有关如何在 ES 上执行此操作的文档。(ES 文档似乎假设系统都在同一子网上,等等)

小智 5

Elasticsearch 作为云存在,这意味着如果您有副本,它们就会起到主-主模式的作用。如果一台服务器出现故障,其他服务器将自动接管。当索引文档时,它也在返回之前在副本中索引,从而保持数据的一致性。

一个集群可以有零个或多个副本,并且可以使用更新设置 api 在运行时进行配置,如下所示

curl -XPUT 'localhost:9200/your_index/_settings' -d '
{
    "index" : {
        "number_of_replicas" : 1
    }
}'
Run Code Online (Sandbox Code Playgroud)

仅当有足够的节点运行时才会创建副本(分片的副本永远不会存在于与其主节点相同的节点中)。如果无法分配副本,您的集群将进入黄色状态。

在您的新 DC 中启动一个具有相同集群名称的新 Elasticsearch 节点。如果您使用默认配置,则无需进行任何更改,除了为节点设置相同的集群名称以发现彼此,否则可能需要在网络配置中进行更改。

注意:不建议在单独的 DC 中为同一集群设置副本或 Elasticsearch 节点,因为网络延迟会影响性能。此外,它可能会影响集群的稳定性。

如果您打算在单独的 DC 中备份数据,您可以考虑使用快照