mysql高可用系统—ucmha
DESCRIPTION
UCWEB高级工程师张光培在珠三角技术沙龙2013年第10期上的分享 via http://tech.uc.cn/TRANSCRIPT
MySQL高可用系统-UCMHA
UC优视-张光培
© 2004 - 2013 UC Mobile 1
现实中的MySQL问题
© 2004 - 2013 UC Mobile
目标
业界解决方案
•Monitor + vip: 监控模块 + 虚拟IP•客户端:api层(嵌入应用模块)•中间层代理:MySQL协议解析与转发
UC MySQL高可用系统
高可用 = 快速灾难恢复1.MySQL高可用2.应用高可用3.平台高可用
UCMHA整体架构
手工处理10分钟以上
故障快速恢复
自动处理30秒以内
MySQL高可用-自动切换
© 2004 - 2013 UC Mobile
MySQL高可用-监控策略
•定时监控•检测失败,间隔一定周期重新检测•异常情况下,连续多次检测
MySQL高可用-切换策略
•异常被动通知•累计异常次数,启动切换
完善的高可用方案-自动化部署(平滑升级)
传统部署方式•手工处理•服务器过多时工作量大且易出错•出问题需要手工恢复原版本•缺乏统一的版本管理工具
自动化部署方式•自动进行程序的分发,启停,回滚•多服务器时减少工作量及出错率•版本管理,可选择需要的版本进行启动•统一的维护界面
完善的高可用方案-应用侧高可用
•应用端部署•权重轮询负载均衡•主备负载均衡•MySQL协议健康检测
完善的高可用方案-平台高可用(Web控制台)
部署方式:
应对场景:• Web服务崩溃• 配置库机器宕机• 单机架掉电• 双机架掉电\机房宕机
完善的高可用方案-平台高可用(自动化部署)
部署方式:
应对场景:• 自动化部署 master节点宕机• 自动化部署 slave节点宕机• 自动化部署 中继(slave/master)节点宕机
平台化-对外接口
© 2004 - 2013 UC Mobile
接口分类:• 访问UCMHA系统信息 查询业务慢SQL 查询业务proxy信息 查询业务的主从关系 ……
• 访问MySQL运行信息 查询MySQL实例的状态信息 执行受限制的SQL查询 显示SQL语句的执行计划 ……
访问安全:• 双向SSL认证• 访问频率控制• 访问日志记录
监控管理监控管理
平台化-监控管理
节点状态 监控
慢SQL 统计
请求数 统计
连接池状态 统计
p MySQL节点p Proxy节点p Monitor节点p Zookeeper节点
p 前端连接数p 完成请求数p 每秒请求数p 平均SQL执行时长
p 慢SQL语句p 执行时长p 客户端IPp 业务及对应MySQl实例
p 总共连接数p 空闲连接数p 等待任务数p 完成任务数p 平均等待时长p 事务连接数
平台化-智能化管理
中间层方案对比
淘宝MySQL云架构(http://blog.yufeng.info/archives/2349)
1. Erlang实现proxy2. 配置信息的存取使用Mnesia3. 用户名路由4. 外部工具
ROADMAP
减少MySQL连接数
分库分表
统一管理、failover/分库分表
统一管理、简化操作、failover
跨机房管理
Thank You!
© 2004 - 2013 UC Mobile 20
www.uc.cn & wap.uc.cn & tech.uc.cn