ElasticSearch高级功能:Cross Cluster Replication实战

原创声明:本文首发腾讯云·云+社区,未经允许,不得转载

前言

ElasticSearch在platinum版本中,推出了Cross Cluster Replication特性(以下简称CCR),也即跨集群远程复制。

该特性可以解决两类问题:

1,数据迁移;

2,异地备份。

本文以实战为主,基本概念及原理可参考官网文档

基本架构

CCR架构

需要注意的点:

1,CCR是针对索引的主从复制,且复制动作是由从端发起的pull操作;

2,主端索引(即leader index)可以读写,从端索引(follower index)只读;

3,主端索引的属性 index.soft_deletes.enabled 必须为 true(具体原因可参考官方文档

4,CCR功能需白金版license。

实战

1,环境简介

腾讯云 ElasticSearch 6.8.2 白金版 集群 * 2,下面简称为集群A(remote cluster)和集群B(local cluster)

实战架构图

2,配置

1,配置远端集群数据源

在集群A上执行:

PUT test
{
  "settings": {
    "index.soft_deletes.enabled": true
  }
}

2,在远端集群查询节点transport_address

在集群A上执行:

GET _nodes

结果如下,选取任意一个节点的 transport_address即可

任意一个节点的transport_ip

3,在本地集群的kibana上添加远端集群

添加远端集群 图1
添加远端集群 图2

如上图,依次操作,在本地集群,也即集群B添加远端集群A。

需要注意,节点IP & PORT需要填写上一步获取到的transport_address。

4,在kibana部署CCR

在kibana部署CCR 图1
在kibana部署CCR 图2
在kibana部署CCR 图3

如上图,配置好CCR后,可以看到,CCR实例的状态会很快由Paused变为Active。

至此,已完成CCR的基本配置。

3,测试

我们可以使用如下方法测试上面配置的CCR是否生效。

1,在远端集群PUT文档

在远端集群创建索引

2,在本地集群GET对应索引

在本地集群,查看索引内容

我们可以通过以上2步看到,远端集群的leader index索引test中的内容,已经通过CCR复制到了本地集群的follower index索引new中。

除创建以外,索引的变更、删除也都同上,此处不再赘述。

那么,我们如果在本地集群修改或删除follower索引,会如何呢?

修改follower index

为什么会出现无法写入的情况,请参考官方文档,如下图

follower index无法写入的原因

总结

以上简单介绍了通过Kibana配置并使用Cross Cluster Replication的方法,实际仍然可以使用RESTFUL API完成所有上述操作,具体可以参考官方文档。有关CCR中,自动生成索引部分,这里也不再展开来讲。

CCR功能的提供,让集群间索引级别的数据复制变得简单。在实际商业应用中,往往是通过CCR将生产环境的数据复制到各个集群,供各业务部门分析使用,既能够满足数据分析需要,也避免了业务分析时因误操作修改了生产数据。

【完】

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
ElasticSearch高级功能:Cross Cluster Replication实战
ElasticSearch在platinum版本中,推出了Cross Cluster Replication特性(以下简称CCR),也即跨集群远程复制。
<<上一篇
下一篇>>