




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Zookeeper+MHA的mysql高可用架构设计分享什么•
基于MHA的常用mysql
HA架构•
为什么要改造常用方案•
Lianjia当前的架构•
核心组件实现•
流程分析•
优化MHAMySQL
ClusterReplicationslaveMHAManagerHealth
CheckMHAnodeMHAnodeVIP
HeartBeatmasterMHAVIPAppAppAppAppnodeconnectslaveReplicationMHAnodeVIPApp
Server基于MH
的经典mysq
H
架构有哪些问题?•
VIP变成了单点•
keepalived本身的脑裂问题•
单机多实例混部时,VIP如何应对改造目的&思路•
解决VIP存在的问题•
使用命名服务,对上层应用屏蔽mysql集群的拓扑信息,达到底层mysql集群的变更对上层透明的目的Name
ServiceMHAMHAManagerRegisterServerServerServerMHAnodeHealth
CheckMySQL
ClusterReplicationslaveMZAgentMHAnodemasterAppAppAppconnectMHAnodeslaveAppReplicationMHAnodeApp
ServerLianji
基于MH
的mysq
H
架构MHA•
集中管理mysql集群•
负责mysql切换•
向name
service注册mysql服务信息•
切换时发布mysql服务信息变更Name
Service•
提供命名服务•
存储mysql服务信息,包括Port,IP,主从拓扑•
基于Zookeeper实现Mysql服务信息在zookeeper中存储结构//mysql3307/redis…
…3306…
…masterslave00slave01masterslave00MZAgent•
部署在app
server•
订阅在name
service注册的mysql服务信息,并持久化到本地/etc/hosts•
订阅变更,实时修改本地/etc/hosts•
基于zkclient实现Zookeeper/etc/hostsZkclient.
subscribeChildChanges()Zkclient.
subscribeDataChanges()localhost
mysql-3306-master
mysql-3306-slave00
mysql-3306-slave01MzagentBufferedWriter.write()BufferedWriter.flush()/etc/hostsApp
ServerMysql服务注册流程1.
MHA监控进程启动2.
MHA向ZK注册mysql服务信息3.
MZAgent启动,订阅mysql服务信息4.
持久化mysql服务信息到/etc/hosts5.
应用使用hostname连接mysql②ZookeeperClusterMHARegister①③MzagentMaster⑤④Connect/etc/hostsSlaveSlaveApp
ServerMysql
ClusterMysql切换流程1.
MHA做mysql切换2.
MHA向ZK发布mysql服务信息变更3.
MZAgent订阅到变更,并修改/etc/hosts中的hostname4.
应用使用新的hostname连接mysql②ZookeeperClusterMHAPublish①③Mzagent③Master④Connect/etc/hostsSlaveSlaveApp
ServerMysql
Cluster解决了哪些问题•
命名服务提供者无单点问题üMzagent单点,但是故障不影响访问数据库•
规避VIP脑裂对上层应用的影响•
单机多实例部署,管理方便,切换时集群间互不影响持续优化•
Agent的问题ümysql集群扩/缩容时,应用需要做相应地配置更新ü/etc/hosts容易误操作,可能导致应用访问DB异常üApp
server订阅mysql服务信息不同,带来额外的管理成本,不利于自动化ü额外的开发和维护成本持续优化•
使用DNS接口ü使用DNS实现Name
Serviceü为mysql服务分配内部域名ü注册mysql服务到内网DNS
serverüApp
server使用dnsmasq,做DNS请求路由MHAName
ServiceMHAManagerRegisterInternalDNS
ServerMHAnodeHealth
CheckMySQL
ClusterReplicationslaveDnsmasqMHAnodemasterAppAppAppconnectMHAnodeslaveAppReplicationMHAnodeApp
Server持续优化•
DNS
Cache带来的问题ü切换时mysql变更对上层不能及时生效•
如何解决?ü设置合理的TTLü切换时,主动purge
cache记录持续优化•
使用DNS接口解决了哪些问题ü多个slave共用同一个域名,读请求负载均衡,mysql集群扩/缩容对应用透明ü规避了人为误操作影响上层业务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产车间管理制度车间内部管理制度
- 东华理工学子举行“迎元旦送对联”活动
- 小学教师自我鉴定例文
- 年秋季班开学典礼领导讲话
- 2025年ICU专用末端装置项目合作计划书
- 团干培训心得体会篇
- 疫情防控工作总结版
- 幼儿园舞蹈活动策划方案范文
- 1 我们知道的植物 教学设计-2023-2024学年科学一年级上册教科版
- 低碳环保建议书范文七篇
- 食品经营场所及设施设备清洗消毒制度
- 精神病学简答题(温州医学院题库)
- 上市公司组织架构策略
- 上海交通大学有机化学课件第二章烷烃
- DB34∕T 3968-2021 桥梁健康监测系统运营维护与管理规范
- 加气混凝土砌块砌筑规范标准[详]
- 定语从句汉译英
- 财政部金融企业不良资产批量转让管理办法(财金[2012]6号)
- 仓库管理警示标语
- 天然气次高压管线工程焊接施工方案和措施
- 项目量产移交点检表
评论
0/150
提交评论