
Orchestrator
Orchestrator 是一个由 Go 语言编写的 MySQL 高可用管理和复制拓补显示工具,它后端使用
MySQL 或 SQLite 存储实时变化的元数据信息,这些元数据信息包括监听对外服务的
MySQL,也包括它自身后端的 MySQL。
它提供了一个 Web 界面,可以在界面上使用鼠标非常简便的更改复制拓补结构,更新部分配
置等。
同时,提供了非常多的预先封装好的命令以供用户使用,我们可以在钩子函数的脚本里使用这
些命令,可以非常便捷的触发失败 failvoer 脚本或其他 failover 过程脚本。
这款中间件最可靠的地方,就是它是由 GitHub 官方出品,其中 GitHub 的一部分业务也是使
用 Orchestrator 来管理的。
Orchestrator 的地址:https://github.com/github/orchestrator
Orchestrator 相比 MHA、MySQL+keepalived,最大的痛点就是解决了管理节点单点问题,
自身可以使用 raft 协议来保证自身高可用性,而且单点或多点 Orchestrator 更是解决了脑裂
的问题。
Orchestrator 功能
1. 自动检测和监控复制状态和拓扑结构
2. 可以使用 GUI,CLI 或 API 来检查和执行操作
3. 支持主库的自动故障转移,并且当发生故障时,可以手动或自动修复
4. 不依赖于 MySQL 的任何特定版本或分支(MySQL,Percona Server,MariaDB 都
支持)
5. 支持许多不同类型的拓扑,从简单的主从结构,到由数百台服务器组成的复杂多层复
制
6. 可根据当时的状态进行拓扑更改, 而不需要预先对数据库拓扑定义相对应的配置。
7. 提供友好美观的图形界面,通过拖放即可在 Web 界面更改复制关系(也可以通过 CLI
和 API 操作以及更多功能)
Orchestrator 支持的拓扑结构和版本
1. GTID 复制。
2. SBR 和 RBR 都可以。(Statement-Based and Row-Based Replication)
3. 半同步复制
4. 单主复制、级联复制
5. Master-Master 复制(两个节点)
6. 并行复制
Orchestrator 不支持的拓扑结构和版本
1. 不支持 3 个节点以上的主主(Master-Master)复制
2. 不支持多源复制(多主一从 Multi master replication )
3. 不支持 5.6 版本的并行复制 (thread per schema)
4. 不支持 Percona XtraDB Cluster(Galera)
5. 不支持 Tungsten replicator 方式的复制
评论