网站首页 > 开源技术 正文
概述
Orchestrator是一款开源的MySQL复制拓扑管理工具,采用go语言编写,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换、手动主从切换等功能。
Orchestrator后台依赖于MySQL或者SQLite存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的自动化运维管理。
相比于MHA,Orchestrator更加偏重于复制拓扑关系的管理,能够实现MySQL任一复制拓扑关系的调整,并在此基础上,实现MySQL高可用,另外Orchestrator自身可以部署多个节点,通过raft分布式一致性协议,保证自身的高可用。
今天主要介绍一下orachestrator的高可用机制。
一、Orchestrator 高可用
Orchestrator多节点部署,通过raft一致性协议实现自身高可用。
相对比MHA的Manager的单点,ORCHESTRATOR通过Raft算法解决了本身的高可用性以及解决网络隔离问题,特别是跨数据中心网络异常。这里说明下Raft,通过共识算法:
Orchestrator节点能够选择具有仲裁的领导者(leader)。如有3个orch节点,其中一个可以成为leader(3节点仲裁大小为2,5节点仲裁大小为3)。只允许leader进行修改,每个MySQL拓扑服务器将由三个不同的orchestrator节点独立访问,在正常情况下,三个节点将看到或多或少相同的拓扑图,但他们每个都会独立分析写入其自己的专用后端数据库服务器:
① 所有更改都必须通过leader。
② 在启用raft模式上禁止使用orchestrator客户端。
③ 在启用raft模式上使用orchestrator-client,orchestrator-client可以安装在没有orchestrator上的服务器。
④ 单个orchestrator节点的故障不会影响orchestrator的可用性。在3节点设置上,最多一个服务器可能会失败。在5节点设置上,2个节点可能会失败。
⑤ Orchestrator节点异常关闭,然后再启动。它将重新加入Raft组,并接收遗漏的任何事件,只要有足够的Raft记录。
⑥ 要加入比日志保留允许的更长/更远的orchestrator节点或者数据库完全为空的节点,需要从另一个活动节点克隆后端DB。
二、高可用实验
例如在如下3台机器部署Orchestrator节点:
- 172.26.151.69
- 172.26.151.94
- 172.26.151.95
1、在每个节点上修改orchestrator.conf.json配置文件:
注意:RaftBind配置为当前节点ip
2、在每个节点上启动orchestrator服务:
3、测试访问
在浏览器中访问如下:
关闭172.26.151.69节点上的orchestrator服务,leader自动切换到172.26.151.94或者172.26.151.95,如果172.26.151.69重新启动后,加入集群,它将作为follower。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下
猜你喜欢
- 2024-11-10 一杯茶的功夫就把日志搜索引擎性能调优了?
- 2024-11-10 JDBC、JDBC Driver、Java访问数据库
- 2024-11-10 JAVA数据库编程(java数据库编程包含哪些类)
- 2024-11-10 Django的用户表创建(四)(django自定义user表)
- 2024-11-10 数据库编程入门(数据库编程步骤)
- 2024-11-10 AOT使用经验总结(aot应用)
- 2024-11-10 AlpineLinux安装部署php8(alpine linux安装python)
- 2024-11-10 C++ Qt面试题 | 精选25题(c++,qt)
- 2024-11-10 一杯茶的功夫就把日志搜索引擎性能调优了
- 2024-11-10 Flask-Login处理用户登录和认证(flask login current_user)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)