MongoDB分片集群容灾方案

MongoDB分片集群容灾方案

  • 1. 集群同步工具介绍
    • 1.1 第三方数据同步工具mongoshake
    • 1.2 官方同步工具mongosync
  • 2. 工具对比
    • 2.1 数据一致性
    • 2.2 稳定性和可靠性
    • 2.3 维护成本
  • 3. 总结

1. 集群同步工具介绍

最近客户咨询MongoDB分片集群市面上主流的容灾方案,所以抽空整理了这篇文章。

1.1 第三方数据同步工具mongoshake

第三方的数据同步工具采用双集群同步的方式来打造 MongoDB 容灾系统,
MongoShake 是阿里云以 golang 语言编写的通用平台型服务工具,它通过读取 MongoDB的 Oplog 操作日志来复制 MongoDB 的数据以实现特定需求。
MongoShake 还提供了日志数据的订阅和消费功能,可通过 SDK、Kafka、MetaQ 等方式的灵活对接,适用于日志订阅、数据中心同步、Cache 异步淘汰等场景。

MongoShake 可以用于数据分析、灾备和多活等业务场景。
MongoShake 是一个基于MongoDB 的跨数据中心的数据复制平台,可以实现 MongoDB 数据库间的数据同步。
在容灾方面,MongoShake 可以通过阿里云自研的 MongoShake 开源工具实现 MongoDB 数据库间的数据同步,该功能可用于数据分析、灾备和多活等业务场景。

MongoShake 可以跨数据中心进行数据同步。MongoShake 从源库抓取 oplog 数据,然后发送到各个不同的 tunnel 通道。
源库支持:eplicaSet,Sharding,Mongod,
目的库支持:Mongos,Mongod。现有通道类型如下:

  1. Direct:直接写入目的 MongoDB
  2. RPC:通过 net/rpc 方式连接
  3. TCP:通过 tcp 方式连接
  4. File:通过文件方式对接
  5. Kafka:通过 Kafka 方式对接
  6. Mock:用于测试,不写入 tunnel,抛弃所有数据

消费者可以通过对接 tunnel 通道获取关注的数据,例如对接 Direct 通道直接写入目的MongoDB,或者对接 RPC 进行同步数据传输等。此外,用户还可以自己创建自己的 API进行灵活接入。

下面 2 张图给出了基本的架构和数据流:

在这里插入图片描述
在这里插入图片描述

1.2 官方同步工具mongosync

MongoDB 集群到集群同步(mongosync 实用程序)为您提供在相同或不同环境(Atlas、私有云、内部部署和边缘集群)中的 MongoDB 集群的连续、单向数据同步。
MongoDB 集群到集群同步允许您轻松地将数据迁移到云,启动开发/测试环境,创建专用分析环境,并支持审计和数据驻留要求。

mongosync 包含单不仅限于一些典型的限制条件:

  1. 版本限制,目前只支持 6.0.x 版本,最低版本要求为 6.0.8
  2. 源集群和目标集群必须具有相同的主要和次要版本,但可以有不同的补丁版本。
    例如 mongosync 支持从 MongoDB 6.0.8 源集群同步到 MongoDB 6.0.9 目标集群,因为这些是同一主要版本的补丁版本。
    mongosync 不支持从 MongoDB 6.0.9 源集群同步到 MongoDB 7.0.0 目标集群,因为它们有不同的主要版本。
  3. 在 mongosync 运行时,其他客户端不得写入目标集群,即无法再目标库集群中进行写操作,避免一致性问题 。
  4. 无法复制系统表 。
  5. 不支持加密数据 。
  6. 无法同步具有同一字段上定义的唯一索引和非唯一索引的集合 。
  7. 无法同步时间序列集合和固定生命周期的集合。

2. 工具对比

2.1 数据一致性

MongoShake 中,通过订阅消费,可以灵活对接以适应不同场景,每个 shard 都将对接到 MongoShake 并进行并行抓取。对于目标库来说,可以对接多个 mongos,不同的数据将会哈希后写入不同的 mongos 的方式同步两个集群,保证数据一致性。

mongosync 可以通过读取 mongos 对 mongos 点对点的方式,也可以通过分片对分片多对多的方式同步集群数据,理论上只要保证 oplog 的连续性就能保持数据一致性。

2.2 稳定性和可靠性

MongoShake 是阿里云自研的容灾和多活解决方案平台,可以跨数据中心进行数据同步,作为主流的集群同步方案之一。

mongosync 是 MongoDB 官方提供的集群同步解决方案,具有较高的稳定性和可靠性。

2.3 维护成本

MongoShake 和 mongosync 都需要监控和管理其运行状态,需要投入更多的成本来维护其正常运行。

3. 总结

类似 MongoShake 这样的第三方工具,在数据同步方面配置简单,同样也有着安全可靠的技术水准,但可能会由于开源技术的弊端,无法做到与官方数据库版本的完美兼容,存在着未知风险的可能。
而 MongoDB 官方的集群同步工具,能够较好地保证数据一致性、可靠性等问题,而且对于性能损耗较小,并且在意外发生时,能够获得官方技术手册的支持,自主可控,但受限于目前支持的版本较少。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Node.js —— Express中服务器的创建、托管静态资源、nodemon

目录 Express的安装 创建基本的 Web 服务器 监听GET请求 监听POST请求 把内容响应给客户端 ​编辑获取 URL 中携带的查询参数 ​编辑获取 URL 中的动态参数 ​编辑托管静态资源 express.static() 托管多个静态资源目录 挂载路径前缀 nodemon: 为什么要使用 nodemon 安…

如何让UE4.26使用VS2022【Windows,源码下载】

使用UE5一直用的是VS2022,都是因为团队需要,只能用UE4,而我电脑中拥有的UE4的版本是UE4.26以及VS2022,我不可能去下载VS2019来为这么一个项目,所以就研究了一下是哪里阻止了UE4.26不让我使用VS2022. 首先下载UE4.26源码…

守护景区安全:探讨景区视频监控方案的搭建及必要性

据新闻报道,5月25日,安徽黄山景区内发生雷击,闪电击中飞来石景点的护栏,多人被碎石砸中受伤。景区工作人员表示,飞来石附近本就属于雷区,当天曾发过两次雷电预警。 随着旅游业的繁荣发展,越来越…

掌握Adobe XD:为自学者准备的软件学习秘籍

相信了解一些设计软件的朋友都听说过这个软件,Adobe XD软件是一款功能强大的原型创建工具。随着Adobe XD软件越来越受到用户的青睐,它几乎涵盖了所有大中小企业和企业的设计,可以说是设计公司最常用的软件之一。Adobe XD软件可以在很多方面满…

Android制作.9图

需求背景:android 启动图变形 开发语言:uni-app,uni-app官网 俗语曰:授人以鱼不如授人以渔 原创地址:Android制作.9图 语雀 一.工具 使用android studio,因为android studio已经集成.9.png制作工具&a…

godot4.2 + GDextension c++在 vs code 中断点调试配置

游戏开发中如果做不到自己编写的代码做断点调试,无不是瞎子摸象,特别是C这么底层的语言。这2天开始在VS studio中折腾,一直折腾不出结果,几次想要放弃GODOT。最终今天在VS code中搞定了这断点调试C代码。 在上一篇文章我已经做好了…

axios和ts的简单使用

按照官网的使用案例简单记下笔记 1:安装 npm install axios 2:案例 一个简单的config配置信息 // 发起一个post请求 axios({method: post,url: /user/12345,data: {firstName: Fred,lastName: Flintstone} }); case // 在 node.js 用GET请求获取…

基于springboot+vue的公司资产网站(全套)

一、系统架构 前端:vue2 | element-ui 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven | node 二、代码及数据库 三、功能介绍 01. 管理后台-登录 02. 管理后台-首页 03. 管理后台-个人中心-修改密码 04. 管理后台-个人…

蓝桥杯第1022题 玩具蛇 基础DFS C++ Java

题目 思路和解题方法 问题理解:此题要求找出将一条由16节正方形构成的玩具蛇放入4x4的方格中的不同方式数。每节蛇可以是直线或直角转弯,且蛇的形状需要完全覆盖盒子里的16个格子,每个格子仅被蛇的一个部分占据。 状态表示:使用一…

小猪APP分发:让你的应用轻松上架,免费分发

你是否曾经因为应用无法顺利上架而烦恼?或者,刚刚开发好的应用找不到一个合适的平台进行分发?其实,这些问题都不再是问题,因为“小猪APP分发”来了! 每个开发者都希望自己的应用能够被更多的人下载和使用&…

解读vue3源码-1

提示:看到我 请让滚去学习 vue3渲染流程 文章目录 vue3渲染流程vue3的3个核心:1.响应式模块(Reactivity Module)--创建响应式数据2.编译模块(Compiler Module)--模版编译器将html转换为一个渲染函数3.渲染模块(Renderer Module) 渲染流程:1.首…

【torchrl】强化学习训练流程

1 采集数据阶段 上面这个循环是用来采集数据,并且加入到replay buffer中。最终获取的数据是 - s: 当前状态,或者observation - a: 当前动作,后面重要性采样需要用到 - pa: 选择当前动作的概率,后面重要性采样用到 - r: 当前的奖励…

五款局域网监控软件良心推荐

五款局域网监控软件良心推荐 有人问我,能不能推荐几款好用的局域网监控软件。 我说,当然可以了,凭良心说,这几款软件在实用性、用户体验、隐私保护以及性价比上,绝对是当前最强监控软件。 1. 安企神 这款软件支持7天…

智简云携手云器Lakehouse打造一体化大数据平台,释放数据价值

导读 本篇分享的是智简云使用云器Lakehouse升级数据平台的实践总结。 智简云,是一家拥有十余年历史的科技公司,专注于企业服务领域,开发了两款核心产品:基于PASS平台的客户关系管理(CRM)系统和为中小型用…

生命在于学习——Python人工智能原理(2.1)

二、机器学习 1、机器学习的定义 机器学习是指从有限的观测数据中学习出具有一般性的规律,并利用这些规律对未知数据进行预测的方法,通俗的讲,机器学习就是让计算机从数据中进行自动学习,得到某种知识。 传统的机器学习主要关注…

应用一键跳转,Xinstall助力提升用户体验

在移动互联网时代,App已成为人们日常生活中不可或缺的一部分。然而,随着App数量的激增,如何让用户更便捷地访问和使用App,成为了开发者们面临的一大挑战。在这一背景下,Xinstall作为国内专业的App全渠道统计服务商&…

滚珠花键在工业自动化领域中有什么优势?

滚珠花键是工业自动化设备中重要的传动系统之一,不仅在工业自动化系统中有着广泛的运用,还在机械制造领域、航空航天领域、工业汽车领域、工业机器人、高速铁路、新能源领域 等都得到广泛应用。由于具有高精度、高承载、耐磨损、传递扭矩大等特点&#x…

大连瓦房店市科工局副局长乔宽一行调研蓝卓

日前,瓦房店市科技和工业信息化局副局长乔宽、副局长国海军、轴承协会秘书长高钧一行莅临蓝卓调研,学习浙江数字经济发展路径,考察蓝卓数字化服务能力。蓝卓副总经理陈挺、装备汽配军团总监陈伟亮、数字化咨询总监周立斌、大连区域方案经理龚…

昆仑通态触摸屏组态软件MCGS 嵌入版V7.7.1.7老版触摸屏安装程序

1.MCGS7.7嵌入版用于昆仑通态老版本触摸屏组态开发,具体支持哪些型号组态,可以在软件的工程设置里面查看。新出的触摸屏一般用MCGS Pro版本组态开发,老版本触摸屏必须用MCGS 7.7嵌入版组态开发。 2.MCGS7.7嵌入版支持当下常用的Win7、Win10、…

AWS联网和内容分发之Transit Gateway

将Amazon VPC、AWS账户和本地网络连接到一个网关中。AWS Transit Gateway通过中央枢纽连接Amazon虚拟私有云(VPC)和本地网络。此连接简化了您的网络,并且结束了复杂的对等关系。Transit Gateway充当高度可扩展的云路由器,每个新的…