高可用MySQLMMM实现高可用的构建(mysql-mmm)

MySQLMMM(Multi-Master Multi-Mode)是一种可以实现MySQL高可用性建设的开源分布式数据库管理系统。它可以使用户在多台独立的MySQL实例之间实现自动failover的MySQL的读写分离,使得MySQL的可用性得以最大化。

MySQLMMM有三个功能构件组成: MMM Agent,MMM Monitor和MMM Proxy。 MMM Agent是MySQLMMM中的核心部分,它负责MySQL实例与MMM Monitor之间的通信,广播事件信息及协助实现failover机制,保证MySQL最大限度可用。 MMM Monitor负责监控MySQL实例的状态,监测通过MMM Agent报告的事件,处理failover,以达到MySQL实例最大程度可用,其运行在可执行语言Python中,代码如下:

import sys

from mmm.monitor import Monitor

if __name__ == ‘__main__’:

# Start MMM Monitor

monitor = Monitor()

monitor.run()

接着是MMM Proxy,它是MySQLMMM的一个中间代理组件,是客户端与MySQL服务器之间的网关。它接收来自客户端的请求,将其转发到MySQL服务器实例上,以提供负载均衡以及高可用的服务。它的代码如下:

#!/usr/bin/env python

from mmm.proxy import Proxy

if __name__ == ‘__main__’:

proxy = Proxy()

proxy.start()

MySQLMMM和其他高可用性组件配合使用,可以构建出高可用性Mysql场景,它支持在线增加MySQL实例,支持节点故障failover,可以实时分析MySQL实例的各类性能指标及利用率。它也支持多种主从模式,因此可以根据业务需要选择合适的主从模式,如将MySQL实例当作读数据库,又可以当作写数据库等。

由此可见,MySQLMMM是一个强大的工具,能够为用户构建高可用的MySQL环境,使MySQL的可用性大大提升。


数据运维技术 » 高可用MySQLMMM实现高可用的构建(mysql-mmm)