美团是国内知名的在线外卖、酒店预订平台,在提供高效、快速服务的同时,对于系统的高可用性也非常重视。而对于数据库的高可用性,美团选择使用了MySQL高可用方案。
MySQL高可用方案基于主从复制,主数据库进行写操作,从数据库进行读操作以及备份数据,保证数据可靠性。随着访问量的增加,MySQL数据库面临着更多的读写请求同时进来,这对系统的高可用性提出更高要求。
为了更好的保证MySQL的高可用性,美团采用了双主模式,即两个主数据库能够同时接受写请求,这就保证了系统的高可用性。同时,还采用了多台从数据库的方案,每个从数据库可以负责读取部分主数据库的数据,这样就可以有效避免单点故障。
首先,我们配置my.cnf文件。 [mysqld] binlog-format = 'ROW' server-id = 1 log_bin = /var/lib/mysql/mysql-bin.log auto_increment_offset = 1 auto_increment_increment = 2 expire_logs_days = 7 max_binlog_size = 100M replicate-do-db = medb bind-address = xx.xxx.xx.xxx port = 3306 datadir = /var/lib/mysql 每个MySQL实例的server-id设置唯一值,保证在MySQL复制过程中能够准确识别来源,binlog-format 为 ROW 格式,这样能够准确记录每个行数据的变化,便于在slave上进行归档以及同步。port 需要设置不同的mysql端口,bind-address 是MySQL的监听地址和IP地址。
美团还引用了多种开源技术,例如MyCat、Haproxy等将MySQL集群的部署覆盖到应用层API,对整个系统做到了全方位的保障。这些高可用方案的引入,让美团在保证数据一致性和实时性的同时,更好地满足了用户的需求。