E往无前 | 腾讯云大数据 ElasticSearch 高级功能:Cross Cluster Replication实战

前言

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

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

1,数据迁移;

2,异地备份。

本文以实战为主,基本概念及原理可参考官网文档。https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-ccr.html

基本架构

83357d303ce220623911460565abd9a1.png

图1.CCR结构

需要注意的点:

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

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

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

https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-requirements.html#ccr-overview-soft-deletes

4、CCR功能需白金版license。

  实战

1、环境简介

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

13cdffd776c2c258707e88c45be012f3.png

图2.实战架构图

2、配置

1)配置远端集群数据源

在集群A上执行:

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

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

在集群A上执行:

GET _nodes

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

e0c7f36dde672e8f6c82a9006d50dca6.png

图3.任意一个节点的transport_ip

3)在本地集群的Kibana上添加远端集群

3bada6a79d207791c29193d43f754777.png

图4.添加远端集群

6ad39400bbdbec839e78ddea1e367ccc.png

图5.添加远端集群

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

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

4)在Kibana部署CCR

1864be829e4e4aac767e4a82ed5f94bd.png

图6.在Kibana部署CCR

bfb601d64d39b1c4cb829880c483db2a.png

图7.在Kibana部署CCR

81ccd76b592270ca9c2f4936581cca08.png

图8.在Kibana部署CCR

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

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

3、测试

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

1)在远端集群PUT文档

8c02ee8c832c923bb331a793d442fe35.png

图9.在远端集群创建索引

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

e5d88d5458b6051c99b911680fbdccc9.png

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

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

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

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

112a726236e15808aaf38302058912fa.png

图11.修改follower index

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

https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-overview.html

e5269a01b8b8c614a4b6616485bcb3e3.png

图12.follower index无法写入的原因

  总结

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

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

猜你喜欢

转载自blog.csdn.net/cloudbigdata/article/details/130858548