云搜索服务 CSS-配置Elasticsearch集群读写分离:索引同步
索引同步
索引同步有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”。
参数名 |
说明 |
---|---|
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”。
参数名 |
说明 |
---|---|
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”。 |