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

news2024/11/27 15:50:48

概述

   起初只在部分业务中采用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
kibana7.15.0
jdkopenjdk 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系列经典文章

  • elasticsearch列一:索引模板的使用

  • elasticsearch系列二:引入索引模板后发现数据达到一定量还是慢怎么办?

  • elasticsearch系列三:常用查询语法

  • elasticsearch系列四:集群常规运维

  • elasticsearch系列五:集群的备份与恢复

  • elasticsearch系列六:索引重建

  • elasticsearch系列七:聚合查询

  • elasticsearch系列八:如何解决聚合结果不精确问题

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1341786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NXP实战笔记(三):S32K3xx基于RTD-SDK在S32DS上配置WDT配置

目录 1、WDT概述 2、SWT配置 2.1、超时时间,复位方式的配置 2.2、中断形式 1、WDT概述 SWT 编程模型只允许 32 位(字)访问。 以下任何尝试访问都是无效的: •非32位访问 •写入只读寄存器 •启用SWT时,将不正确的值写入SR…

SpringBoot 项目中常用的注解

每一层对应每个包,包名中应全为小写。 一、Common 层(实体类) 前提:导入 Lombok 依赖 Data:生成 get 和 set 方法以及 toString 方法 Getter:只生成 get 方法,避免对类中的成员变量修改。 …

“踩坑”经验分享:Swift语言落地实践

作者 | 路涛、艳红 导读 Swift 是一种适用于iOS/macOS应用开发、服务器端的编程语言。自2014年苹果发布 Swift 语言以来,Swift5 实现了 ABI 稳定性、Module 稳定性和Library Evolution,与Objective-C(下文简称“OC”)相比&#xf…

数据仓库-数仓优化小厂实践

一、背景 由于公司规模较小,大数据相关没有实现平台化,相关的架构都是原生的Apache组件,所以集群的维护和优化都需要人工的参与。根据自己的实践整理一些数仓相关的优化。 二、优化 1、简易架构图 2、ODS层优化 2.1 分段式解析 随着业务增长…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)一

第二部分、线性表详解:数据结构线性表10分钟入门 线性表,数据结构中最简单的一种存储结构,专门用于存储逻辑关系为"一对一"的数据。 线性表,基于数据在实际物理空间中的存储状态,又可细分为顺序表&#xff…

助力城市部件[标石/电杆/光交箱/人井]精细化管理,基于YOLOv7【tiny/yolov7】开发构建生活场景下城市部件检测识别系统

井盖、店杆、光交箱、通信箱、标石等为城市中常见部件,在方便居民生活的同时,因为后期维护的不及时往往会出现一些“井盖吃人”、“线杆、电杆、线缆伤人”事件。造成这类问题的原因是客观的多方面的,这也是城市化进程不断发展进步的过程中难…

点亮AI未来的U盘

随着人工智能行业蓬勃发展,如今国内外大模型如雨后春笋般涌现,国内AI赛道更是步入水深火热的发展阶段。上半年的AIGC赛道国内投融资规模以模型层为主,这一现象充分说明了国内人工智能应用场景的丰富多样,投资机会也更加聚焦于应用…

用电脑将图片转为excel表格有几种方法?怎么操作?

将图片转为Excel表格,一般需要借助OCR(光学字符识别)技术。OCR技术可以将图片中的文字提取出来,并转换成Excel表格中的数据。以下是几种常用的方法: 一、.使用在线OCR工具 1、打开金鸣表格文字识别(简称金鸣识别)网站…

软件测试/测试开发丨Python自动化测试学习笔记

1. 引言 自动化测试是软件开发中的关键环节,它可以提高测试效率、减少重复工作,并提供更快速、稳定的测试结果。Python作为一种易学易用的编程语言,为自动化测试提供了强大的工具和库。本文将介绍如何使用Python进行自动化测试。 2. 安装Py…

如何将弹性公网IP绑定到负载均衡CLB

创建的CLB实例为私网类型,没有公网IP,无法通过公网访问,如果需要让其网站能够通过公网访问,只需要绑定前面创建的EIP即可。 第一步 如果弹性公网IP已经绑定了资源,需要先解绑 第二步 将私网CLB实例绑定到弹性公网IP …

蓝牙物联网智能安防系统设计方案

1概述 安防系统(安全防护)的作用是预防损失,是人们保障人身和财产安全最重要的工具之一。近年来,伴随经济的飞速发展和城市人口的急剧增加,盗窃、入室抢劫等事件的增多给人们的安定生活带来了很大的影响,同时,交通的快…

[OCR]Python 3 下的文字识别CnOCR

目录 1 CnOCR 2 安装 3 实践 1 CnOCR CnOCR 是 Python 3 下的文字识别(Optical Character Recognition,简称OCR)工具包。 工具包支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,支持竖…

如何实现内部产品权限集成

当前我国各领域正在加速向数字化、移动化、智能化发展,大力投入信息化建设与数字化转型已成为企业的共识,而企业门户系统是企业信息化系统建设是一个重要支撑,以企业业务系统为基础,搭建门户系统作为统一入口和应用中心可以有效支…

通过Python将PDF转为文本,快速提取PDF中的文字

快速高效地从PDF文档中提取信息对于专业人士来说非常重要。处理大量PDF文件时,将PDF转换为可编辑的文本格式可以节省时间和精力。而强大的Python语言正是在这些方面发挥其作用。利用Python中丰富的API,我们可以轻松在Python程序中将PDF转换为文本&#x…

YOLOv5改进 | 2023注意力篇 | BiFormer双层路由注意力机制(Bi-level Routing Attention)

一、本文介绍 BiFormer是一种结合了Bi-level Routing Attention的视觉Transformer模型,BiFormer模型的核心思想是引入了双层路由注意力机制。在BiFormer中,每个图像块都与一个位置路由器相关联。这些位置路由器根据特定的规则将图像块分配给上层和下层路…

重装系统以后无法git跟踪

总结:权限问题 故障定位 解决方案: 复制一份新的文件夹。(新建的文件创建和写入权限都变了) 修改文件为新的用户 执行提示的命令

【iOS安全】越狱iOS安装Frida | 安装指定版本Frida

越狱iPhone安装Frida 本文的方法适用于已越狱的iPhone手机 打开Cydia,软件源,编辑(右上角),添加(左上角):https://build.frida.re 然后搜索Frida,点击安装 参考&#x…

gzip引入后node_modules中.cache compression-webpack-plugin占用内存过多

1.Gzip Gzip(GNU zip)是一种常见的文件压缩格式和压缩算法,通常用于在 Web 服务器上对静态资源文件进行压缩,以减小文件大小并加快文件传输速度。在前端开发中,经常会使用 Gzip 压缩来优化网站的性能。 Gzip 压缩通过…

3D动态路障生成

3D动态路障生成 介绍设计实现1.路面创建2.空物体的创建3.Create.cs脚本创建 总结 介绍 上一篇文章介绍了Mathf.Lerp的底层实现原理,这里介绍一下跑酷类游戏的动态路障生成是如何实现的。 动态路障其实比较好生成,但是难点在哪里,如果都是平面…

18-网络安全框架及模型-信息系统安全保障模型

信息系统安全保障模型 1 基本概念 信息系统安全保障是针对信息系统在运行环境中所面临的各种风险,制定信息系统安全保障策略,设计并实现信息系统安全保障架构或模型,采取工程、技术、管理等安全保障要素,将风险减少至预定可接受的…