当前位置:   article > 正文

【orchestrator】001架构说明_orchestrator mha

orchestrator mha

001、架构说明

基本说明

orchestrator是MYSQL的高可用管理软件,使用go开发,功能类似MHA,就是在mysql主从发生故障时,控制mysql进行主从切换。

项目地址为:https://github.com/openark/orchestrator

对比MHA

相比MHA,orchestrator更加轻量化、也更年轻。

轻量化是它不需要agent,只需要在mysql实例上新建一个具有特定权限的用户就可以接入orchestrator。

软件可以下载二进制包,开箱即用,不需要装很多的perl依赖。

年轻是比MHA出来的晚好多年,因此它相比MHA补充了一些新特性,比如web浏览器访问,web API接口、自身的高可用机制(基于raft协议)。

但是MHA在服务挂掉时,会尝试把确实的binlog在从库上补齐,这点orchestrator做不到。

基本架构

在这里插入图片描述

说明:

1、orchestrator组件很少,基本的就一个主程序文件,一个配置文件就够了。

2、orchestrator自己需要使用数据库存储元数据信息,因此需要为它专门建一个db,支持mysql和sqllite。

3、在mysql数据库服务器上,不需要做任何软件的安装,只需要新建一个用户给orchestrator使用即可,用户权限为

### 用户名可以自定义,此处为举例说明
CREATE USER 'orchestrator'@'orch_host' IDENTIFIED BY 'orch_topology_password';
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'orch_host';
GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'orch_host';
  • 1
  • 2
  • 3
  • 4

基本工作流程:

实例发现(discovery)------>故障检测(detection)-------→故障恢复(recovery)

实例发现:通过图形界面或者命令行方式,注册mysql实例。

故障检测:orchestrator连接到已发现的mysql实例,执行一系列检测的sql语句,并将数据处理分析后,存储至orchestrator元数据库。

检测逻辑在instance_dao.go文件中的ReadTopologyInstanceBufferable函数中。

分析逻辑在analysis_dao.go文件中的GetReplicationAnalysis函数中。

故障恢复:若发现出现故障,则触发恢复。

恢复逻辑中存在多个hook钩子函数。可以通过配置hook函数,调用自定义的shell脚本,完成额外的自定义处理,比如VIP的切换等。

基本的恢复流程为,执行故障恢复前的钩子函数----→选出新的master,并change master完成新拓扑------->执行恢复完成后的钩子函数。

支持与限制:(基于当前最新版本为v3.2.6,2021-07-27版本)

翻译自:https://github.com/openark/orchestrator/blob/master/docs/supported-topologies-and-versions.md

支持:

1、支持基于file: position的经典主从复制。

2、支持Oracle GTID和MariaDB GTID的gtid模式复制。

3、支持基于语句(statement)和基于行(row)的复制。

4、支持半同步复制。

5、支持单主模式和只有两个主的双主模式。

6、5.7并行复制的支持:对于使用GTID没有限制。对于使用Pseudo-GTID,则必须要开启in-order-replication(见参数slave_preserve_commit_order)。

限制:

1、不支持3个或者3个以上的多主模式。

2、不支持5.6的并行复制(基于schema)。

3、不支持多源复制。

4、不支持Tungsten replicator。

5、Galera/XtraDB Cluster 不严格支持。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号