MySQL高可用探讨(读写分离)

上一篇我们聊到TP做读写分离的底层实现,相对来说,其实思路是清晰简单的,但这些其实都是基于数据库已经做到了主从配置。

如果你不知道,可以mysql主从实战

建议给从库单独开个账号只授权读的权限,而不是设置slave为read_only(我配置了,but没啥用)

但我们稍微深入思考一下,PHP框架里有做到高可用吗?加入从库其中一个挂了,照着TP的思路,依旧有可能去这个从库读取数据,这是我们不能接受的。

一主一从甚至一主多从的架构显然只能满足读写性能,而不能保证服务的高可用。我们知道任何一个服务挂掉的可能性都是存在的,我们说的高可用只能是尽可能小的避免整个服务挂掉的可能。由此你应该能想到多主多从,这个仅仅文章里的配置是完成不了的,PHP框架也是检测不了的。

我觉得PHP框架来做读写分离是不科学的,因为增加了代码的复杂度,我认为这些应该交给数据库来做,或者数据库中间件来做,各司其职吗。

我不知道是不是很多人会想到mysql_proxy,然而官方已经不推荐使用了,推荐使用mysql_router,有在自己的ECS上尝试了一下,配置相对还是简单的,没测试性能,但确实实现了一定程度的高可用。

当然你也可以去使用变形虫等中间件,他们的功能相比mysql_router更为强大。

此篇没有干货,只是纯技术探讨,我不过是在南京南站,没事码码字罢了!


MySQL高可用探讨(读写分离)
https://blog.puresai.com/2018/12/30/175/
作者
puresai
许可协议