elasticsearch高级功能之跨集群复制CCR

    • CCR的作用(Cross-Cluster Replication,跨集群复制)
    • 常用的场景
    • 如何使用
    • 工作原理
    • 源码分析

CCR的作用(Cross-Cluster Replication,跨集群复制)

  1. CCR功能允许用户在不同的Elasticsearch集群之间同步索引数据。这对于实现跨集群复制、数据备份、灾难恢复和多数据中心部署等场景非常有用。
  2. CCR功能提供了实时的、异步的、可靠的跨集群数据同步,能够有效地将变更事件从一个集群复制到另一个集群。通过CCR,用户可以保持多个集群之间的数据一致性,并实现将数据从生产集群复制到用于查询和分析的目标集群。

常用的场景

1.异地容灾备份:CCR 可以将数据从一个集群复制到另一个位于不同地理位置的集群,实现数据的异地容灾备份。这样,即使源集群发生故障或不可用,目标集群仍能提供服务,保证数据的可用性。

2.跨数据中心复制:当在全球范围内部署 Elasticsearch 集群时,CCR 可以实现跨不同数据中心之间的数据复制,以便在不同地理区域提供快速的访问,减少网络延迟。

3.数据分析和报告:CCR 可以将源集群中的生产数据复制到专门用于数据分析和报告的目标集群中。这样,可以在不影响生产环境的情况下,对数据进行分析、数据挖掘和生成报告。

4.多数据中心协作:对于分布在多个数据中心的不同团队或应用程序,CCR 可以确保他们之间的数据同步。这使得不同的团队或应用程序能够共享和协作处理数据。

5.灾难恢复:CCR 在灾难恢复方面也发挥着重要作用,允许在一个 Elasticsearch 集群发生完全故障时,快速恢复到另一个复制的集群上,确保业务的连续性。

总体上支持单向复制,双向复制,应用容灾等,功能十分强大。

如何使用

具体参照官网:链接: Use cross-cluster replication.
简单来说就是在源端集群创建引导索引(Leader Index),在目标集群创建跟随索引(Follower Index),让目标集群索引订阅源端索引并关联源端集群信息,这样当源端索引发生CDC(Change Data Capture),也就是文档的增加、修改、删除时,能快速同步到目标端的各个索引分片上。

工作原理

1.Leader-Follower 架构:CCR 使用 Leader-Follower 架构来实现数据的复制。在 CCR 中,预导索引(Leader Index)充当主索引,接收所有的写操作。而跟随索引(Follower Index)则是从预导索引复制数据的副本,是只读的。

2.复制操作:CCR 会从预导索引中捕获并复制所有的索引、更新和删除操作。这些操作会以批量的形式进行复制,并按照同样的顺序在跟随索引上执行。这样可以确保跟随索引与预导索引保持一致,并保持数据的可靠性与一致性。

3.异步复制:CCR 的数据复制是异步的,因此跟随索引的更新可能存在一定的延迟。这个延迟取决于网络延迟、索引大小和复制速度等因素。Elasticsearch 提供了监控指标和接口来跟踪复制进度和延迟,以便可视化监控和调优。

4.重试和冲突解决:如果复制操作在跟随索引上失败,CCR 会进行重试,直到成功为止。此外,如果预导索引和跟随索引之间存在冲突(如更新操作导致的冲突),CCR 会使用乐观并发控制技术来解决冲突,以确保数据的一致性。

5.连接和安全性:CCR 需要在源集群和目标集群之间建立连接。这包括配置安全密钥、HTTPS 证书和网络连接等。确保网络和安全设置正确配置非常重要,以保证复制操作的顺利进行和数据的安全性。

未完待续…………

源码分析

github地址: CCR.

未完待续…………

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

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

相关文章

3.12 Bootstrap 超大屏幕(Jumbotron)

文章目录 Bootstrap 超大屏幕(Jumbotron) Bootstrap 超大屏幕(Jumbotron) 下面将讲解 Bootstrap 支持的另一个特性,超大屏幕(Jumbotron)。顾名思义该组件可以增加标题的大小,并为登陆…

详解Windows安装分布式版本控制系统git

文章目录 前言下载安装相关链接 前言 git是一个分布式版本控制软件,最初由Linux创作者Linus Torvalds创作,并于2015年以GPL许可协议发布。git易于学习,占用空间小,性能却快如闪电,可以快速、 高效的管理从小到大的项目…

uniapp-轮播图swiper根据内容图片高度自适应,解决获取图片高度不准确的问题

需求:轮播图swiper根据内容图片高度自适应 但是通过uniapp uni.createSelectorQuery的方法获取图片高度不正确,比如图片是100,获取是200,this.$nextTick也不能解决,setTimeout到是能解决,但是不稳定&#…

DeFi新篇章 | Sui上原生订单簿DeepBook正式上线

随着原生去中心化中央限价订单簿( Central Limit Order Book,CLOB)DeepBook的推出,Sui上的DeFi开启了新篇章。DeepBook由一群Sui贡献者共同构建,为新一代DeFi应用提供了一个稳定的流动性层。 通过DeepBook&#xff0c…

Kubernetes在数字化转型中的作用

Kubernetes在数字化转型中的作用 数字化转型是指在现代化社会中,利用数字技术来改变企业、组织或个人的业务模式、流程和价值创造方式的过程。这包括使用数字技术来提高效率、创新产品或服务、优化客户体验和开发新的业务模式等方面。数字化转型是一个全球性的趋势…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄?很多小伙伴通过私信向我求助,用什么方法可以在mac电脑上批量修改文件名称,将大量文件修改成不同的名称。这可能是一项比较麻烦的操作,在电脑上进行过批量重命名的小伙伴都知道,一般…

Redis源码篇 - Reactor设计模式 和 Redis Reactor设计模式

Reactor :反应器模式或者应答者模式,它是一种基于事件驱动的设计模式。拥有一个或者多个输入源,通过反应器分发给多个worker线程处理,实现并发场景下事件处理。 此图网上找的,画的很好:

【Javascript】根据表达式(可字符串)过滤数组

正在实现一个基于后台低代码配置的应用,记录一下字符串表达式在项目用的转换与使用。以下是使用表达式过滤数据的实践代码: 表达式如下 item.readFlag1封装使用函数 /*** 获取表格数据* param array 被过滤的数组 * param expression 表达式*/ function filterAr…

C# 抽象类和接口详解

参考视频链接:https://www.bilibili.com/video/BV13b411b7Ht?p27&vd_source10065785c7e10360d831474364e0d3e3 代码的进化与重构,从基本代码的讲解到逐步抽象成抽象类和接口。 文章目录 最初定义利用继承改进对方法进一步改进利用虚函数进行改进利…

如何设计光场2.0(聚焦型光场相机)系统参数

1. 系统参数设计 目前的硬件系统的现状:主透镜50mm,MLA:15*15,d0.5mm,f15mm,s4.8um 开普勒型光场系统: 首先我们需要确定系统的M,M参数表示单个位置的点能被多少个小微透镜成像&am…

【YOLO】部署与推理

【YOLO】部署与推理 文章目录 【YOLO】部署与推理前言一、YOLO 的发展历史?一、YOLOv5 是什么?二、YOLOv5型号选择三、YOLOv5 推理1. 下载源代码2. 安装依赖2. 执行推理总结前言 目前YOLO最新的对象检测模型系列,最新版已经发展到YOLOv8, YOLOV8模型更快、更准确,具有实例…

python3GUI--仿win10任务管理器By:PyQt5(附UI源码)

文章目录 一.前言二.展示1.主界面1.进程2.性能1.CPU2.内存 3.简略信息4.详细信息5.新建任务 三.设计思路1.UI设计1.主界面1.进程2.性能3.详细信息4.新建任务5.图表信息组件 2.代码整体设计1.项目设计心得2.项目设计其他心得 3.其他心得 四&am…

Minecraft 1.20.x Forge模组开发 01.Idea开发环境配置

我们本次来进行Minecraft 1.20.x 模组开发环境配置教程的介绍。 效果演示 效果演示 效果演示 1.首先我们需要下载Java17和1.20模组开发包: Java17下载官网

智安网络|保护数据资产:不同行业下的数据安全建设策略

在当今数字化时代,数据安全已经成为各行各业无法忽视的重要议题。保持良好网络卫生习惯并及时了解不断变化的网络威胁是企业中每个人的责任。企业、政府机构、医疗机构、金融机构以及其他组织和行业都面临着日益复杂和频繁的网络安全威胁。为了有效应对这些威胁&…

JVM系统优化实践(20):GC生产环境案例(三)

您好,这里是「码农镖局」CSDN博客,欢迎您来,欢迎您再来~ 某新手开发工程师接到了一个保存Elasticsearch日志的任务,以供后续分析之用。但写代码的时候,误将保存日志的代码段弄成了无限循环,程序…

面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&#x…

24 MFC文档串行化和单文档应用程序

文章目录 文档串行化全部代码 单文档应用程序搭建原理搭建框架Win32 过度到MFC 三部曲设置ID资源全部代码 单文档应用程序设置标题绘图 简单的管理系统部分代码 文档串行化 ui 设计 保存 void CfileDemoDlg::OnBnClickedBtnSave() {UpdateData();//CFile file(L"Demo.dat…

基于MATLAB的无人机遥感数据预处理与农林植被性状估算教程

详情点击链接:基于MATLAB的无人机遥感数据预处理与农林植被性状估算前言 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势,是智慧农业必须采…

如何成功地搭建属于自己的游戏平台?

成功搭建自己的游戏平台需要考虑以下关键步骤: 市场研究:进行市场调研,了解游戏行业的趋势和竞争状况,确定目标受众和市场定位。 制定商业计划:根据市场研究结果,制定详细的商业计划,包括目标…

UML 图

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图…