Kubernetes-部署高可用的MySQL
1 、MySQL简介 MySQL 是一个开源的关系型数据库管理系统,使用标准的sql语言,由瑞典 MySQL AB 公司开发,当前属于 Oracle 公司。能够 支持大型的数据库,可以处理上千万条的数据记录。可以运行于在Windows、Linux等多种系统上;支持C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等编程语言。对于32位系统,MySQL的表文件最大可支持4GB,对于64位系统,MySQL支持最大的表文件为8TB。 2 、MySQL的高可用方案 本文的MySQL高可用方案为主从复制+读写分离,即由单一的master和多个slave所构成。其中,客户端通过master对数据库进行写操作,通过slave端进行读操作。master出现问题后,可以将应用切换到slave端。 此方案是MySQL官方提供的一种高可用解决方案,节点间的数据同步采用MySQL Replication技术。 MySQL Replication从一个MySQL数据库服务器(master)的数据复制到一个或多个MySQL数据库服务器(slave)。在默认情况下,复制是异步的;slave不需要一直接收来自主机的更新。根据配置,可以复制数据库中的所有数据库、选定的数据库,或者特定的表。 MySQL中复制的优点包括: 扩容解决方案:在多个slave之间扩展负载以提高性能。在这种模式下,所有的写入和更新操作都必须在主服务器上进行。然而,读取操作通过slave镜像。该模型可以提高写入操作的性能,同时,也能够通过增加slave的节点数量,从而显著地提升读取速度。 数据安全:数据从master被复制到slave,并且slave可以暂停复制过程。因此,可以在不损坏master的情况下,在slave上运行备份服务。 分析:现场数据可以在master上创建,而对信息的分析可以在slave进行,而不影响master的性能。 远程数据分发:可以使用复制为远程站点创建本地数据的副本,而不必一直通过访问master。 此高可用的解决方案适用于对数据实时性要求不是特别严格的场景,在使用时可以通过廉价的硬件来扩展slave的节点数量,将读压力分散到多台slave的机器上面。此方案能够在很大的程度上解决数据库读取数据的压力瓶颈问题,这是因为在大多的应用系统中,读压力要比写压...