MongoShake 项目推荐
1. 项目基础介绍和主要编程语言
MongoShake 是由阿里巴巴集团开发并维护的一个基于 MongoDB 的 oplog 的通用数据复制平台。该项目的主要编程语言是 Go 语言。MongoShake 通过读取 MongoDB 的 oplog 操作日志,实现了数据的复制和同步功能,适用于多种数据同步场景,如数据迁移、灾备和多活等。
2. 项目核心功能
MongoShake 的核心功能包括:
- 数据复制和同步:基于 MongoDB 的 oplog,实现从源 MongoDB 数据库到目标 MongoDB 数据库的数据复制和同步。
- 灾备和多活:支持冗余复制和主动-主动复制,确保数据的高可用性和灾备能力。
- 多种隧道类型:支持多种数据传输隧道,如 RPC、TCP、文件、Kafka 等,用户可以根据需求选择合适的隧道类型。
- 并行复制:提供三种并行复制选项(id、collection、auto),根据不同的需求调整复制的粒度。
- 高可用性:通过定期将上下文持久化到注册中心(默认是源数据库),确保系统的高可用性。
- 过滤支持:支持通过白名单和黑名单过滤数据库和集合的命名空间。
- DDL 同步:支持 DDL 操作的同步,确保数据结构的一致性。
3. 项目最近更新的功能
MongoShake 最近的更新功能包括:
- DDL 同步支持:从版本 1.5 开始,MongoShake 支持 DDL 操作的同步,通过全局屏障机制确保 DDL 操作在目标数据库中的正确执行。
- 全局 ID 支持:在阿里云内部版本中,支持全局 ID(gid),用于避免数据循环复制。
- 多种隧道类型扩展:新增了多种隧道类型,如 RPC、TCP、文件、Kafka 等,用户可以根据需求选择合适的隧道类型。
- 压缩支持:支持 Gzip、zlib、deflate 等压缩算法,在批量 oplog 发送前进行压缩,提高传输效率。
- 监控与调试:通过 RESTful API 提供监控和调试功能,方便用户进行系统状态的监控和问题排查。
MongoShake 是一个功能强大且灵活的数据复制平台,适用于多种数据同步和灾备场景,是 MongoDB 用户进行数据迁移和同步的理想选择。