问:A,B两台mysql实现主从复制,A提供写,B提供读,那既然B要同步A,当A更新数据的时候,B不也一样要更新吗?那B不还是没有实现负载减轻吗?还有能通过MYSQL proxy实现3台mysq均衡l吗?一台写,另外两台读,mysql proxy能自动来把读的操作均衡给读的那两台机器吗?
答:mysql复制通过2进制日志来实现从数据库数据的更新,而不是在主数据库上有数据更新后,再把这些更新传输到从数据库(注意把它与rsync这类基于文件的方式区分开来).二进制日志记录主数据库所做的更新操作(如插入/删除等),然后从数据库知道这个操作后就在自身执行这个过程.举个现实的例子:一个连锁型饭店新创了一道菜,你现在就在这个饭店的某个分店里,这时,你想吃上这道新菜,怎么办?让总店做一份给你快递过来还是分店按总店的制作方法做一份?
在方案中mysql_proxy主要做读写分离.关于mysql_proxy均衡具体细节,等我琢磨清楚了再与你讨论.
问:我是这样想的,mysql有个mysql cluster,可以实现mysql的真正写同步,我可以搭配web的那种负载均衡吗?把mysql也做个集群负载,这样,当web连接数据库时,就可以通过负载自动把数据请求均衡给两台mysql服务器.
对了,如果我做个nfs共享目录的话,和web从本机访问网站数据文件相比较是不是速度会慢很多,因为网络传输,毕竟没有在本机访问快呀.影响会不会很大..
没有nas 可以拿一个服务器共享目录(即nfs),每个web服务器挂接这个共享目录,这样就没有同步问题.
答:可以拿lvs来专门做mysql的负载.不过这样增加了系统的复杂程度,个人认为管理的精髓就是尽可能的简化.
对了,如果我做个nfs共享目录的话,和web从本机访问网站数据文件相比较是不是速度会慢很多,因为网络传输,毕竟没有在本机访问快呀.影响会不会很大..
没有nas 可以拿一个服务器共享目录(即nfs),每个web服务器挂接这个共享目录,这样就没有同步问题.
答:可以拿lvs来专门做mysql的负载.不过这样增加了系统的复杂程度,个人认为管理的精髓就是尽可能的简化.
nfs已经发展到版本4了,以前是udp协议,为了保证其可靠性,新的版本是tcp协议.因此不必有这个疑虑.当然这也有些技巧,如nfs通过私有网络共享,而不是用服务器的公网地址.
最好的办法是自己尝试.
本文转自sery51CTO博客,原文链接:http://blog.51cto.com/sery/86152 ,如需转载请自行联系原作者