为什么会引出这个话题?原因在于上周拜访客户时,客户现在使用了MySQL Group Replication,今后准备将其大量部署在生产系统,但是担心MGR未来的发展,如果MySQL不重视MGR的话,今后可能会出现不维护或者停止开发的现象。客户的担心不无道理,但就在昨天,MySQL团队给出了一颗定心丸——Oracle公有云上的MDS(MySQL Database Service)提供了高可用的选择,在后台的实现则是使用了MGR。
高可用性选项使应用程序能够满足更高的正常运行时间要求和数据0️⃣丢失的容错性。当用户选择高可用性选项时,将跨不同的可用域(AD)或故障域(FD)提供一个具有三个实例的MySQL DB系统。数据在实例之间复制,使用基于paxos的共识协议,该协议由MySQL组复制技术实现。应用程序连接到单个端点,向数据库进行读写。如果出现故障,MySQL数据库服务将在几分钟内自动故障转移到从实例,不会丢失数据,也不需要重新配置应用程序。
图片源自https://blogs.oracle.com/mysql/mysql-database-service-with-high-availability
一个高可用性数据库系统由三个MySQL实例组成,一个主实例和两个从实例。所有写入主实例的数据也会写入从实例。如果主服务器发生故障,其中一个从服务器将自动升级为主服务器,并将其设置为读写模式,在不丢失数据的情况下恢复客户机应用程序的可用性。实现故障转移。也可以进行主动切换,将从服务器提升为主服务器。当启动故障转移或切换时,端点(读、写)总是指向新提升的主节点。也就是说,无论当前提升的主实例是哪个,数据库系统端点的IP地址都不会改变。
希望上面这些内容能给您以下提示:
- MGR发展的很好,未来也不会停掉,毕竟在Oracle的公有云上提供服务,出现性能和质量问题一定会解决。您再也不用担心Bug解决慢等问题了。
- 利用MGR进行各种魔改的团队请注意了,如果您改进了很多有效代码,希望您能提交给社区,MySQL是开源软件,使用开源软件要有开源的精神和开放的心态。当MySQL团队开足马力发展MGR时,您的改动很可能会变成一个特立独行的分支,将来的开发维护成本需要仔细考虑。
- 最后建议使用MySQL比较保守的用户,追随主流产品才是明智的选择,毕竟在大多数情况下,系统的安全稳定才是第一位!
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/191051.html