云搜索服务 CSS-配置Elasticsearch集群读写分离:索引同步

时间:2024-10-26 16:09:32

索引同步

索引同步有2种方式:指定索引同步和匹配索引同步。

开启索引同步后,从集群的索引会变为只读状态,并且定时与主集群索引同步。同步周期默认30秒,如果需要修改请参见修改同步周期

指定索引同步
  • 在从集群执行如下命令,将主集群的单个索引同步到从集群,不修改索引配置。
    PUT start_remote_sync
    {
      "remote_cluster": "leader1",
      "remote_index": "data1_leader",
      "local_index": "data1_follower"
    }
  • 在从集群执行如下命令,将主集群的单个索引同步到从集群,并修改部分索引配置,开启索引配置同步。
    PUT start_remote_sync
    {
      "remote_cluster": "leader1",
      "remote_index": "data1_leader",
      "local_index": "data1_follower",
      "settings": {
        "number_of_replicas": 4
      },
      "settings_sync_enable": true,
      "settings_sync_patterns": ["*"],
      "settings_sync_exclude_patterns": ["index.routing.allocation.*"],
      "alias_sync_enable": true,
      "state_sync_enable": true
    }

    以下索引配置不支持修改:“number_of_shards”“version.created”“uuid”“creation_date”“soft_deletes.enabled”

表2 请求体参数说明

参数名

说明

remote_cluster

主集群配置任务的名称,在连接主从集群时设置,例如本文设置的是“leader1”

remote_index

主集群待同步索引名称。

local_index

同步到从集群的索引名称。

settings

同步索引的索引设置。

settings_sync_enable

开启主集群索引设置同步,默认为“false”

settings_sync_patterns

要同步的主集群索引设置前缀,默认为“*”,当“settings_sync_enable”“true”时生效,“settings”中配置的索引设置不会同步。

settings_sync_exclude_patterns

不需要同步的主集群索引设置前缀,默认为空,“settings_sync_enable”“true”时生效。

alias_sync_enable

开启主集群索引别名同步,默认为“false”

state_sync_enable

开启主集群索引状态同步,默认为“false”

匹配索引同步
  • 在从集群执行如下命令,创建匹配模式同步索引,将主集群中匹配的索引同步到从集群。
    PUT auto_sync/pattern/${PATTERN}
    {
     "remote_cluster": "leader1",
     "remote_index_patterns": "log*",
     "local_index_pattern": "{{remote_index}}-sync",
     "apply_exist_index": true
    }
  • 在从集群执行如下命令,创建匹配模式同步索引,将主集群中匹配的索引同步到从集群,并修改部分索引配置,开启索引配置同步。
    PUT auto_sync/pattern/${PATTERN}
    {
     "remote_cluster": "leader1",
     "remote_index_patterns": "log*",
     "local_index_pattern": "{{remote_index}}-sync",
     "apply_exist_index": true,
     "settings": {
       "number_of_replicas": 4
     },
     "settings_sync_enable": true,
     "settings_sync_patterns": ["*"],
     "settings_sync_exclude_patterns": ["index.routing.allocation.*"],
     "alias_sync_enable": true,
     "state_sync_enable": true
    }

    以下索引配置不支持修改:“number_of_shards”“version.created”“uuid”“creation_date”“soft_deletes.enabled”

表3 请求体参数说明

参数名

说明

PATTERN

同步集群配置的pattern名字,用于区分多个不同的匹配模式。

remote_cluster

主集群配置任务的名称,通过连接主从集群设置,具体值如上文的“leader1”

remote_index_patterns

主集群待同步索引模式,支持通配符“*”

local_index_pattern

同步到从集群的索引模式,支持模板替换。例如取值为“{{remote_index}}-sync”时,待同步索引为“log1”,同步过来的索引为“log1-sync”

apply_exist_index

是否同步主集群上已存在的索引,默认为“true”

settings

同步索引的索引设置。

settings_sync_enable

开启主集群索引设置同步,默认为“false”

settings_sync_patterns

要同步的主集群索引设置前缀,默认为“*”,当“settings_sync_enable”“true”时生效,“settings”中配置的索引设置不会同步。

settings_sync_exclude_patterns

不需要同步的主集群索引设置前缀,默认为空,“settings_sync_enable”“true”时生效。

alias_sync_enable

开启主集群索引别名同步,默认为“false”

state_sync_enable

开启主集群索引状态同步,默认为“false”

support.huaweicloud.com/usermanual-css/css_01_0162.html