elasticsearch系列九:异地容灾-CCR跨集群复制

概述

起初只在部分业务中采用es存储数据,在主中心搭建了个集群,随着es在我们系统中的地位越来越重要,数据也越来越多,针对它的安全性问题也越发重要,那如何对es做异地容灾呢?

今天咱们就一起看下官方提供的解决方案cross-cluster replication(简称ccr)。

环境准备

物理机:96核 64G 2THDD 国产UOS系统的服务器一台 ip 192.168.229.48

通过docker快速启动2个es 节点、2个kibana节点,es2个节点为2套独立集群。

名称 ip 版本
es 172.17.0.2 172.17.0.4 7.15.0
kibana 7.15.0
jdk openjdk version 16.0.2

进程如下图:

规划:172.17.0.2 为master 172.17.0.4 为follower

设置CCR

由于CCR是收费版本,如果购买公有云的服务就自带这个功能,此处我们通过试用30天来体验一下。

我们先在0.4所在的kibana上打开ccr设置主节点的信息如下图:

接口级设置:

复制代码
PUT _cluster/settings{  "persistent": {    "cluster": {      "remote": {        "ccr_test": {          "skip_unavailable": false,          "mode": "sniff",          "proxy_address": null,          "proxy_socket_connections": null,          "server_name": null,          "seeds": [            "192.168.229.48:9300"          ],          "node_connections": 3        }      }    }  }}

该功能采用TCP协议,所以我们设置默认端口9300,设置完以后如下图:

并且该功能是基于索引级别的,提供2种方式:创建指定索引同步、自动同步按照索引规则,接下来我们看下2种情况分别如何设置。

设置特定的索引同步

打开follower的kibana,找到ccr设置项如下图:

可以创建一个同步任务,此处只能单个索引设置同步。

接口级设置:

复制代码
PUT /ccr_test/_ccr/follow{  "remote_cluster": "ccr_test",  "leader_index": "ccr_test",  "max_read_request_operation_count": 5120,  "max_outstanding_read_requests": 12,  "max_read_request_size": "32mb",  "max_write_request_operation_count": 5120,  "max_write_request_size": "9223372036854775807b",  "max_outstanding_write_requests": 9,  "max_write_buffer_count": 2147483647,  "max_write_buffer_size": "512mb",  "max_retry_delay": "500ms",  "read_poll_timeout": "1m"}

创建以后我们就可以在主节点上对索引ccr_test进行crud操作了,在主节点上新增4百万的数据,再去follower上查看发现数据成功同步过来。

但是这种方式有局限性,因为实际生产环境可能有n个索引,比如这种按天生成的日志数据索引如何同步呢?总不能一个个的配置吧,接下来我们就看下自动同步。

设置自动同步

我们打开自动同步,添加一个自动任务,通过弹框发现按照固定的格式设置索引同步:

接口级设置:​​​​​​​

复制代码
PUT /_ccr/auto_follow/auto-log{  "remote_cluster": "ccr_test",  "leader_index_patterns": [    "log-server-*"  ],  "follow_index_pattern": "{{leader_index}}"}

这样我们就可以将log-server-开头的索引设置自动同步了,此时我们在主节点新增一个索引:​​​​​​​

复制代码
POST /log-server-2023-12-25/_doc/1{  "name": "John Doe",  "age": 30,  "email": "johndoe@example.com"}

接着去从节点上看下发现数据已经同步成功

总结

以上就是es官方针对跨集群同步的解决方案,官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/ccr-getting-started-tutorial.html#ccr-getting-started-tutorial

当然还有其他的方案比如应用双写、自研数据同步、MQ双写等等。对于自己维护的集群来通过MQ双写相对简单,对于公有云服务还是官方的解决方案更为合适。

好了今天的分享就到这了,有什么疑问欢迎留言讨论。


Elasticsearch系列经典文章

相关推荐
ha_lydms2 小时前
MaxCompute中加密与解密函数
大数据·数据库·数据仓库·hadoop·dataworks·maxcompute·odps
文慧的科技江湖3 小时前
《从算力能源各玩各的到全套跑通:算电协同 + Token 全栈方案落地实战》
大数据·重卡充电桩系统·慧知重卡充电桩平台·慧知重卡充电桩系统
m0_466525295 小时前
数字认证参加第十四届用户体验大会,分享标准建设思路
大数据·人工智能·科技
康实训5 小时前
2026数字化AI智慧实训建设方案
大数据·人工智能·实训室·实训室建设
玫瑰互动GEO5 小时前
开发者学GEO优化:从算法基础到CoT推理链
大数据·人工智能·ai·geo·ai搜索·geo优化
liuhl09106 小时前
【无标题】
大数据·elasticsearch·搜索引擎
大嘴皮猴儿6 小时前
2026年9月行业洞察:适合亚马逊跨境卖家的免费自动图片翻译平台
大数据·人工智能·跨境电商ai跨境翻译网站哪个好·ai图片翻译网站推荐·ai图片翻译工具哪个好
天国梦6 小时前
2026年北京机器狗选型指南:从痛点、技术到实战的完整评测
大数据·人工智能
段一凡-华北理工大学6 小时前
大模型与智能体在工业的应用~系列文章07:多智能体协作:会分工的“AI 团队“
大数据·人工智能·设备巡检·智能体协作·工业智能体·高炉大模型
AI科技先锋报7 小时前
2026企业级Data Agent开发平台有哪些:主流DataAgent开发框架全景解析
大数据·人工智能